下面,我编写了一个函数,它接受数组和键来搜索和计数键匹配数组中元素的次数。我正在尝试修改我的函数,以异步计算匹配数,但不知道如何最好地实现它。如有任何见解或例子,将不胜感激。
我的守则:
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));发布于 2021-12-11 06:32:51
使用承诺
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));
发布于 2021-12-11 06:47:13
通过使用异步功能关键字将承诺转换为async,您可以从任何同步函数返回承诺:
/** 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
发布于 2021-12-11 07:05:12
异步/等待
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);https://stackoverflow.com/questions/70313067
复制相似问题