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

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

Доброго дня.

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

Для этого хотел использовать cheerio, но столкнулся с проблемой:
При переборе страниц циклом "For" и сохранением результата программа начинает все ступени цикла for выполнять одновременно, что приводит к вылету приложения. Подскажите, чем дополнить цикл For для выполнения ступеней поочередно?
  • Вопрос задан
  • 419 просмотров
Подписаться 1 Оценить 2 комментария
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
  • Яндекс Практикум
    Фулстек-разработчик
    16 месяцев
    Далее
  • Яндекс Практикум
    Профессиональная вёрстка на HTML и CSS
    3 месяца
    Далее
Пригласить эксперта
Ответы на вопрос 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/
Ответ написан
Ваш ответ на вопрос

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

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