如何在javascript中取消承诺?

8 javascript promise

var promise1 = new Promise(function(resolve, reject) { 
       // ajax api call
});
var promise2 = new Promise(function(resolve, reject) { 
       // ajax api call
});
Run Code Online (Sandbox Code Playgroud)

我希望能够做一些像 -

if(a < b) {
  promise1.cancel();
}
Run Code Online (Sandbox Code Playgroud)

ale*_*kop 6

您不能取消 Promise,但您可以将 Promise 链接到then, 并在任何时候拒绝。

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