有时我需要等待一种.forEach()方法完成,主要是在“加载程序”功能上。这是我这样做的方式:
.forEach()
$q.when(array.forEach(function(item){ //iterate on something })).then(function(){ //continue with processing });
我忍不住觉得这不是等待a .forEach()完成的最佳方法。做这个的最好方式是什么?
如果内没有 异步 代码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