假设A()返回已解决的承诺并转到B()。 但是,在某些情况下,我需要B()完成而不执行next then()(我不想进入C()。我可以在B()方法中使用defered.reject()但它确实如此似乎不对。
var p = pull(target)
.then(function (data) {
return A();
})
.then(function (data) {
return B();
})
.then(function (data) {
return C();
})
任何提示?
答案 0 :(得分:5)
使用promises进行分支的方式与没有它们的方式相同 - 主要是if
条件:
var p = pull(target)
.then(A).then(B)
.then(function (data) {
if(data) return C(); // assuming B's resolution value is a boolean
});
答案 1 :(得分:0)
如何将它包装在同一方法中?
var p = pull(target)
.then(function(data) {
return A();
})
.then(function(data) {
var result = B();
if (!result)
return C()
return result;
})