Я обнаружил очень странную ошибку при использовании Promises в NodeJS.У меня есть массив, который содержит массив обещаний.
Пример:
пусть обещания = [[P1, P2, P3], [P4, P5], [P6], [P7, P8], [P9, P10, P11, P12, P13]]
Теперь, если я передам массив обещаний следующему коду, я ожидаю, что каждый набор обещаний будет разрешен в порядке .
(async () => {
for(let i = 0; i < promises.length; i++) {
console.log('Starting', i + 1, ' of ', promises.length, ' Total:',promises[i].length);
await Promise.all(promises[i]).then(() => {
console.log('Finished Section ', i + 1);
}).catch(err => {
console.log(err.message);
})
console.log('Next Set of promises');
}
fs.appendFileSync('links.json', JSON.stringify(json));
})()
Но это не так.Фактически выполняется следующее:
Шаг 1 : Первая итерация начинается
Шаг 2 : Все обещания в массиве обещаний выполняются
Шаг 3 : Как только все обещания разрешены, цикл переходит к следующей итерации.
Ожидаемый результат: Разрешение первого набора обещаний -> итерация -> второй наборобещаний -> повторение и т. д.
Я что-то упустил или узел выполняет Обещания по-другому?