在没有抛出错误的情况下,处理Bluebird早期返回的最佳方法是什么。例如,我有以下条件:
things.find(1)
.then(function(thing) {
if (thing.condition === true) {
return thing
} else {
// early return?
}
})
.then(function(thing) {
return doStuff(thing)
})
答案 0 :(得分:4)
一旦.then
链形成,其自然行为将逐步完成,因为每个阶段都会结束。
对于"提前回归" (不是一个好词,但我们知道你的意思),你有三个选择:
return new Promise()
.then
链(Esailija的回答)答案 1 :(得分:2)
things.find(1).then(function(thing) {
if (!thing.condition) return;
return doStuff(thing)
.then(...);
.then(...);
})