Я пытаюсь выполнить функцию после того, как цикл forEach завершил все итерации.
Этот ответ предоставляет интересное решение, но я не могу заставить его работать.
Вот код, который я адаптировал, создав простую функцию asyncFunction ().
function callback () { console.log('all done'); }
function asyncFunction(item) {
console.log("in async function, item is " + item)
}
var itemsProcessed = 0;
[1, 2, 3].forEach((item, index, array) => {
asyncFunction(item, () => {
itemsProcessed++;
console.log("in callback area, itemsProcessed is " + itemsProcessed )
if(itemsProcessed === array.length) {
callback();
}
});
});
Как видно из этого JSfiddle , скрипт правильно выполняет асинхронную функцию, но не может ввести часть, которая увеличивает itemsProcessed
и должна вызвать функцию callback()
.
Я не слишком знаком с функциями жирной стрелки, поэтому, возможно, ошибка связана с их использованием.
Кто-нибудь может объяснить, почему скрипт не работает должным образом?