【发布时间】:2019-03-15 15:11:42
【问题描述】:
我已经检查了一些建议的承诺条件链接方法,但是我找不到我所拥有的用例的解决方案。因此发布了一个新问题。
假设我有:
const promise1 = param1 => {
return new Promise(resolve => {
// do something with param1;
resolve(..);
});
}
// similarly I have other promises
const promise2 ...
const promise 3 ...
// now I want to call with the following case
const param1 = ...;
promise1(param1)
.then(resp1 => {
if(resp1 == something) {
...
console.log(resp1) // I want to end here if condition is met
}
else {
...
return promise2
}
})
.then(resp2 => {
....
return promise3
})
.then(resp3 => {
....
console.log(resp3) // else end here
}).
.catch(err => {
console.log(err)
});
在上面,如果 promise1 返回一个特定的值,我不想继续使用 promise2 和 3。实现这一点的最优雅的方法是什么?谢谢
【问题讨论】:
-
直接将最后两个延续添加到
promise2。否则,您将不得不使用async和await有条件地在else块内链接。
标签: javascript promise