Обещание в цикле forEach - все запускается одновременно
В приложении Node мне нужно выполнять итерацию по некоторым элементам синхронно, но некоторые операции внутри цикла являются асинхронными. Мой код сейчас выглядит так:
someAPIpromise().then((items) => {
items.forEach((item) => {
Promise.all[myPromiseA(item), myPromiseB(item)]).then(() => {
doSomethingSynchronouslyThatTakesAWhile();
});
}
}
Это творит чудеса, когдаitems
это массив из 1. Но, если есть более одного элемента,promise.all()
просто мгновенно отключится для каждого элемента в массиве, не дожидаясь окончания операции в цикле.
Все это говорит ... как я могу гарантировать, что вся операция для каждого элемента в массиве выполняется синхронно (даже если некоторые операции являются асинхронными и возвращают обещание)?
Спасибо!
N