Я использую Bluebird Promises для приложения Node.js. Как я могу ввести условные ветви цепочки для моего приложения? Пример:Bluebird Promise: Вложенные или условные цепочки
exports.SomeMethod = function(req, res) {
library1.step1(param)
.then(function(response) {
//foo
library2.step2(param)
.then(function(response2) { //-> value of response2 decides over a series of subsequent actions
if (response2 == "option1") {
//enter nested promise chain here?
//do().then().then() ...
}
if (response2 == "option2") {
//enter different nested promise chain here?
//do().then().then() ...
}
[...]
}).catch(function(e) {
//foo
});
});
};
Кроме того, не выяснял рабочую версию этого же, это решение чувствует (и выглядит) странно как-то. У меня есть подозрительное подозрение, что я несколько нарушаю концепцию обещаний или что-то в этом роде. Любые другие предложения о том, как ввести такой условный ветвление (каждый из которых отличается не одним, а многими последующими шагами)?
Смотрите также [вложенный] (http://stackoverflow.com/a/22000931/1048572) и [условный] (http://stackoverflow.com/q/26599798/1048572) цепи в целом – Bergi