Есть ли способ отменить отложенную очередь обратного вызова? У меня есть произвольное количество вызовов ajax. Я хотел бы остановить дальнейшие запросы ajax, когда данные успеха возвращают определенный маркер:
this.oDeferred=$.Deferred();
this.oChain=this.oDeferred;
for(var i=0; i<this.aKey.length; i++) {
(function(iKey,self) {
self.oChain=self.oChain.then(function(){
return $.ajax({
url:self.aUrl[iKey],
type:'post',
data:{'ajax':true},
dataType:'json',
success:function(data) {
if(data.bCancel==true) {
//stop deferred object here!
}
}
});
})
}(this.aKey[i],this))
}
this.oDeferred.done(function() {
console.log('done')
});
this.oDeferred.resolve()
Кстати, функция done() запускается автономно после выполнения всех запросов ajax. Как выполнить функцию после выполнения всех аякс-запросов?
Заранее благодарю вас!