Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/414.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用forEach获取异步匿名函数的所有结果 异步函数乘法(任务){ 返回任务*2 } var-arr=[1,2,3,4]; var-res=[]; arr.forEach(异步任务=>{ res.push(等待乘法(任务)) }); console.log(res) 输出 预期_Javascript_Node.js_Typescript_Ecmascript 6_Async Await - Fatal编程技术网

Javascript 使用forEach获取异步匿名函数的所有结果 异步函数乘法(任务){ 返回任务*2 } var-arr=[1,2,3,4]; var-res=[]; arr.forEach(异步任务=>{ res.push(等待乘法(任务)) }); console.log(res) 输出 预期

Javascript 使用forEach获取异步匿名函数的所有结果 异步函数乘法(任务){ 返回任务*2 } var-arr=[1,2,3,4]; var-res=[]; arr.forEach(异步任务=>{ res.push(等待乘法(任务)) }); console.log(res) 输出 预期,javascript,node.js,typescript,ecmascript-6,async-await,Javascript,Node.js,Typescript,Ecmascript 6,Async Await,我想等到所有的项目都乘以2,然后得到一个数组的结果 注意:乘法是一个异步函数,因此有必要在forEach内部编写异步任务。我不能更改乘法。不要使用forEach。使用.map创建承诺数组,并使用Promise.all解析所有承诺: const result = await Promise.all(arr.map(multiply)); forEach不知道异步函数,所以不能让它“等待”回调函数中发生的异步内容。希望这会有所帮助,而不是使用forEach使用map和Promise。所有函数

我想等到所有的项目都乘以2,然后得到一个数组的结果


注意:
乘法
是一个异步函数,因此有必要在forEach内部编写
异步任务
。我不能更改乘法。

不要使用
forEach
。使用
.map
创建承诺数组,并使用
Promise.all
解析所有承诺:

const result = await Promise.all(arr.map(multiply));


forEach
不知道异步函数,所以不能让它“等待”回调函数中发生的异步内容。

希望这会有所帮助,而不是使用
forEach
使用
map
Promise。所有
函数

var-arr=[1,2,3,4];
//创建一系列承诺
var result=arr.map(异步任务=>{
返回等待乘法(任务);
});
//使用Promise.all返回解析为输入承诺结果数组的承诺
然后((res)=>console.log(“我的结果”,res));
异步函数乘法(任务){
返回任务*2

}
我希望您的实际问题涉及到
乘法
中真正异步的内容,否则您只会给同步问题增加开销。-这不允许您“多线程”。正如Aku所说,
forEach
async
回调永远不会做您认为它会做的事情
[2,4,6,8]
const result = await Promise.all(arr.map(multiply));