首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >所有异步forEach回调完成后的回调

所有异步forEach回调完成后的回调
EN

Stack Overflow用户
提问于 2013-09-24 21:34:33
回答 11查看 347.2K关注 0票数 284

正如标题所暗示的那样。我该怎么做呢?

我希望在forEach循环遍历每个元素并完成一些异步处理之后调用whenAllDone()

代码语言:javascript
复制
[1, 2, 3].forEach(
  function(item, index, array, done) {
     asyncFunction(item, function itemDone() {
       console.log(item + " done");
       done();
     });
  }, function allDone() {
     console.log("All done");
     whenAllDone();
  }
);

有可能让它像这样工作吗?当forEach的第二个参数是一个回调函数时,它会在所有迭代中运行吗?

预期输出:

代码语言:javascript
复制
3 done
1 done
2 done
All done!
EN

回答 11

Stack Overflow用户

发布于 2014-06-03 18:47:11

如果你遇到异步函数,并且你想确保在执行代码之前它完成了它的任务,我们总是可以使用回调功能。

例如:

代码语言:javascript
复制
var ctr = 0;
posts.forEach(function(element, index, array){
    asynchronous(function(data){
         ctr++; 
         if (ctr === array.length) {
             functionAfterForEach();
         }
    })
});

注意:functionAfterForEach是在foreach任务完成后执行的函数。asynchronous是在foreach内部执行的异步函数。

票数 31
EN

Stack Overflow用户

发布于 2015-11-12 22:31:14

我希望这能解决你的问题,当我需要执行带有异步任务的forEach时,我通常会用到它。

代码语言:javascript
复制
foo = [a,b,c,d];
waiting = foo.length;
foo.forEach(function(entry){
      doAsynchronousFunction(entry,finish) //call finish after each entry
}
function finish(){
      waiting--;
      if (waiting==0) {
          //do your Job intended to be done after forEach is completed
      } 
}

使用

代码语言:javascript
复制
function doAsynchronousFunction(entry,callback){
       //asynchronousjob with entry
       callback();
}
票数 17
EN

Stack Overflow用户

发布于 2018-08-15 18:29:32

在ES2018中,你可以使用异步迭代器:

代码语言:javascript
复制
const asyncFunction = a => fetch(a);
const itemDone = a => console.log(a);

async function example() {
  const arrayOfFetchPromises = [1, 2, 3].map(asyncFunction);

  for await (const item of arrayOfFetchPromises) {
    itemDone(item);
  }

  console.log('All done');
}
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18983138

复制
相关文章

相似问题

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