最佳答案
在某些情况下,当我从一个承诺对象获得一个返回值时,我需要根据该值的条件启动两个不同的 then()
进程,比如:
promise().then(function(value){
if(//true) {
// do something
} else {
// do something
}
})
我在想也许我可以这样写:
promise().then(function(value){
if(//true) {
// call a new function which will return a new promise object
ifTruePromise().then();
} else {
ifFalsePromise().then();
}
})
但对于这个,我有两个问题:
我不确定开始一个新的承诺是不是一个好主意——然后在一个承诺的过程中;
如果我需要两个进程在最后一个进程中调用一个函数呢?这意味着他们有相同的“终端”
我试图回报新的承诺,保持原来的链条像:
promise().then(function(value){
if(//true) {
// call a new function which will return a new promise object
// and return it
return ifTruePromise();
} else {
// do something, no new promise
// hope to stop the then chain
}
}).then(// I can handle the result of ifTruePromise here now);
但在这种情况下,无论它是真还是假,下一个 then
将工作。
那么,处理这个问题的最佳实践是什么?