2017-01-10 39 views
5
var promise1 = new Promise(function(resolve, reject) { 
     // ajax api call 
}); 
var promise2 = new Promise(function(resolve, reject) { 
     // ajax api call 
}); 

ben böyle bir şey yapmak mümkün istiyorum -Javascript'teki bir söz nasıl iptal edilir?

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

Vaatler iptal edilemez. Bu işlevi eklemek için [Öneri] (https://github.com/tc39/proposal-cancelable-promises) Google'dan gelen muhalefet nedeniyle geri çekildi. –

+0

Bu soruya bir bakın - http://stackoverflow.com/questions/29478751/how-to-cancel-an-emcascript6-vanilla-javascript-promise-chain –

+0

Bir göz atın: http://stackoverflow.com/questions/30233302/promise-is-it-possible-to-force-cancel-a-promise –

cevap

2

Bir Promise iptal edemezsiniz, ancak then ile zincir sözlerini can ve herhangi bir noktada reddediyoruz.

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