首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将代码修改为异步代码?

如何将代码修改为异步代码?
EN

Stack Overflow用户
提问于 2021-12-11 06:28:35
回答 3查看 43关注 0票数 0

下面,我编写了一个函数,它接受数组和键来搜索和计数键匹配数组中元素的次数。我正在尝试修改我的函数,以异步计算匹配数,但不知道如何最好地实现它。如有任何见解或例子,将不胜感激。

我的守则:

代码语言:javascript
复制
function countMatches(arr, key) 
{ 
    var count=0; 
    var i; 
    for (i=0; i < arr.length; i++) 
    { 
        if(arr[i] == key) count=count+1; 
    } 
    return count; 
}

let arr1 = [3, 2, 4, 6, 1, 1, 6, 8, 9];
console.log(countMatches(arr1, 6));
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-12-11 06:32:51

使用承诺

代码语言:javascript
复制
function countMatches(arr, key) 
{ 
    return new Promise((resolve) => {
        var count=0; 
        var i; 
        for (i=0; i < arr.length; i++) 
        { 
            if(arr[i] == key) count=count+1; 
        } 
        resolve(count); 
    });
}

let arr1 = [3, 2, 4, 6, 1, 1, 6, 8, 9];
countMatches(arr1, 6).then(result => console.log(result));

票数 3
EN

Stack Overflow用户

发布于 2021-12-11 06:47:13

通过使用异步功能关键字将承诺转换为async,您可以从任何同步函数返回承诺:

代码语言:javascript
复制
/** This is a sync function */
function getNumber1 () {
  return 42;
}

const n1 = getNumber1();
console.log({sync: n1}); // 42

/**
This is an async function
Notice the `async` keyword before `function`
It automatically returns a promise which resolves to the value
vvvvv                                                       */
async function getNumber2 () {
  return 42;
}

getNumber2().then(n2 => console.log({async: n2})); // 42

票数 0
EN

Stack Overflow用户

发布于 2021-12-11 07:05:12

异步/等待

代码语言:javascript
复制
async function  countMatchesAsync(arr, key) 
{ 
    var count=0; 
    var i; 
    for (i=0; i < arr.length; i++) 
    { 
        if(arr[i] == key) count=count+1; 
    } 
    return await count; 
}

let arr1 = [3, 2, 4, 6, 1, 1, 6, 8, 9];
countMatchesAsync(arr1, 6).then(console.log);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70313067

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档