Обратный вызов после завершения всех асинхронных обратных вызовов forEach
Как следует из названия. Как мне это сделать?
Я хочу позвонить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();
}
);
Можно ли заставить его работать так? Когда вторым аргументом forEach является функция обратного вызова, которая запускается после прохождения всех итераций?
Ожидаемый результат:
3 done
1 done
2 done
All done!