Во время инициализации моего приложения Sails.js мне нужно выполнить несколько задач, зависящих от другого. Если какая-либо из этих задач возвращает ошибку, вся цепочка должна выйти из строя и отменить sails lift
.Цепочки асинхронных функций в node.js w/sails.js
псевдокод:.
configureApis()
.then(getServiceStatus)
.then(setRegionJobs)
.then(cb)
.catch(cb)
Проблема, каждая из этих функций возвращают Promises (за исключением cb
, которая является функцией обратного вызова in this question
Как я могу добиться этого бы async.waterfall
любого использования здесь? ?
Асинхронный водопад звучит так, как будто он подходит к законопроекту, но, возможно, обещания усложняют его. Вы можете попробовать [обещать водопад] (https://github.com/dotSlashLu/promise-waterfall) – forgetso
Чтобы уточнить, «Promise-waterfall расширяет возможности обещаний с последовательным управлением потоком, например ** async.waterfall **». – forgetso
Возможно, вам не следует использовать один и тот же обратный вызов для 'then' и' catch' в вашей цепочке обещаний, потому что в обеих ситуациях он получит разные типы аргументов, результат по предыдущему обещанию или объект ошибки во втором случае. –