如何在javascript中取消承诺?

时间:2017-01-10 07:10:35

标签: javascript promise

var promise1 = new Promise(function(resolve, reject) { 
       // ajax api call
});
var promise2 = new Promise(function(resolve, reject) { 
       // ajax api call
});

我希望能够做类似的事情 -

if(a < b) {
  promise1.cancel();
}

1 个答案:

答案 0 :(得分:4)

您无法取消承诺,但您可以将承诺与then联系起来,并随时拒绝承诺。

new Promise((resolve, reject) => {
    // step 1
})
.then((result) => {
    if (!result) {
        // Reject the promise chain
        throw 'cancel';
    } else {
        return ... // step 2
    }
})
.catch(err => {
    // cancelled
});