Задать вопрос
madmages
@madmages
Человек прямоходящий

JS promise, как работать в рекурсии?

Суть вот в чем, есть такой код, который использует модуль обещалок RSVP для node js.
promise.then(function(){
    (function theFunction(arg){
         if (!arg) {
              //вот тут надо выйти из рекурсии в следующий then
          } else {
               theFunction(sdf);
          }
    }(adsf))
}).then(function(){
        // продолжаем жить
    })

и вот вопрос: как, используя рекурсию (а именно ту, что называется theFunction), выйти из нее в следующий then только по условию? Я насколько понимаю, после того, как будет выполнен этот then ,в котором будет зарегистрирована функция theFunction и которая ничего не вернет, то будет сразу выполнен следующий then, а мне надо только по условию вызывать следующий шаг.
  • Вопрос задан
  • 5400 просмотров
Подписаться 5 Оценить Комментировать
Решения вопроса 1
rsvp:Chaining
В первом `then` создаете и возвращаете ещё один промис, внутри которого делаете вашу `theFunction` рекурсию и когда готовы делаете ресолв. И так переходите ко второму `then`.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
мусье знает толк... асинхронные рекурсии.... Вы уверены что вам там нужна рекурсия? Или асинхронность.
Ответ написан
Ваш ответ на вопрос

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

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