在完成所有异步回调之后,每个回调都完成了顾名思义。我该怎么做?我想打电话whenAllDone()在执行forEach-循环之后,对每个元素进行了遍历,并进行了一些异步处理。[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();
});能让它像这样工作吗?当用于Each的第二个参数是回调函数时,它会在所有迭代过程中运行吗?预期产出:3 done1 done2 doneAll done!
3 回答
隔江千里
TA贡献1906条经验 获得超10个赞
var ctr = 0;posts.forEach(function(element, index, array){
asynchronous(function(data){
ctr++;
if (ctr === array.length) {
functionAfterForEach();
}
})});functionAfterForEachasynchronous
当年话下
TA贡献1890条经验 获得超9个赞
// INCORRECTvar list = [4000, 2000];list.forEach(function(l, index) {
console.log(l + ' started ...');
setTimeout(function() {
console.log(index + ': ' + l);
}, l);});4000 started2000 started1: 20000: 4000
index === array.length - 1
var list = [4000, 2000];var counter = list.length;list.forEach(function(l, index) {
console.log(l + ' started ...');
setTimeout(function() {
console.log(index + ': ' + l);
counter -= 1;
if ( counter === 0)
// call your callback here
}, l);});添加回答
举报
0/150
提交
取消
