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

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

Войти через центр авторизации
Похожие вопросы