Как правильно записать условное ветвление в цепочке Promise?

В цепочке асинхронных операций на каком-то шаге проверяется условие. Дальше опционально добавляется цепочка асинхронных действий перед финальным асинхронным шагом. Примерно так сейчас сделал, работает:
makeInitialPromise()
.then(r => {
  if (r > 0) { // Условие
    // надо дополнительные действия выполнить
    return makeAdditionalPromise(r)
    .then(r => makeAnotherAdditionalPromise());
  } else {
    // можно сразу переходить дальше
    return Promise.resolve(r);
  }
})
.then(r => makeFinalPromise());


Правильно ли городить такую вложенность, или как-то еще можно?
  • Вопрос задан
  • 179 просмотров
Пригласить эксперта
Ответы на вопрос 1
profesor08
@profesor08 Куратор тега JavaScript
Если не нравится так, можешь сделать на async/await, получится линейно.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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