Задать вопрос
@Sstrax

Как в node.js заставить цикл (for loop) выполняться только после завершения выполнения предыдущего шага?

Доброго дня.

Была идея написать свой API к сайтам, которые этого не предусматривают...

Для этого хотел использовать cheerio, но столкнулся с проблемой:
При переборе страниц циклом "For" и сохранением результата программа начинает все ступени цикла for выполнять одновременно, что приводит к вылету приложения. Подскажите, чем дополнить цикл For для выполнения ступеней поочередно?
  • Вопрос задан
  • 414 просмотров
Подписаться 1 Оценить 2 комментария
Пригласить эксперта
Ответы на вопрос 1
Очевидно, раз у вас for вдруг начинает работать параллельно, значит внутри что-то асинхронное. Следовательно, вам нужно посмотрить цепочку промисов:
let chain = Promise.resolve();

for (let i = 0; i < 10; i++) {
  chain = chain.then(myAsyncFunction);
}

chain.then(() => {console.log('all done')});

https://jsfiddle.net/koceg/entn3vqj/
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы