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