javascript - 等待 .forEach() 完成的最佳方法

标签 javascript angularjs

有时我需要等待 .forEach() 方法完成,主要是在“加载器”函数上。我就是这样做的:

$q.when(array.forEach(function(item){ 
    //iterate on something 
})).then(function(){ 
    //continue with processing 
});

我忍不住觉得这不是等待 .forEach() 完成的最佳方式。最好的方法是什么?

最佳答案

如果 forEach 内没有异步代码,则 forEach 不是异步的,例如在以下代码中:

array.forEach(function(item){ 
    //iterate on something 
});
alert("Foreach DONE !");

forEach 完成后您将看到警报。

否则(你内部有异步的东西),你可以将 forEach 循环包装在 Promise 中。 :

var bar = new Promise((resolve, reject) => {
    foo.forEach((value, index, array) => {
        console.log(value);
        if (index === array.length -1) resolve();
    });
});

bar.then(() => {
    console.log('All done!');
});

信用:@rolando-benjamin-vaz-ferreira

关于javascript - 等待 .forEach() 完成的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38406920/

相关文章:

javascript - 如何在angularjs中创建项目具有不同 Controller 的列表

angularjs - 如何取消选中在 ng-repeat 中过滤的复选框

javascript - 在前端使用shopify admin api时出现CORS错误

javascript - 防止 CSS 内容属性被删除

javascript - 如何从 Node JS 数组中删除某些电子邮件地址

javascript - 如何设置图表工具提示的模板文件?

ruby-on-rails - $http get 请求工作正常,除非我从重定向的外部链接按回

javascript - Ace 编辑器在更新宽度之前错误地设置了它的高度 (Chrome)

javascript - Angular + Selenium : Cannot get value from input field

javascript - 如何处理 Node.js 中基于 Promise 的业务级函数中的错误返回对象?