進行中の遅延コールバック キューをキャンセルする方法はありますか? 任意の量の 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 リクエストが行われた後に自律的に起動されます。すべてのajaxリクエストが完了した後に関数を実行する方法は?
前もって感謝します!