下面小編就為大家?guī)?lái)一篇jquery Deferred 快速解決異步回調(diào)的問(wèn)題。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。
jquery Deferred 快速解決異步回調(diào)的問(wèn)題
function ok(name){
var dfd = new $.Deferred();
callback:func(){
return dfd.resolve( response );
}
return dfd.promise();
}
$.when(ok(1),ok(2)).then(function(resp1,resp2){})
//相關(guān)API 分成3類(lèi)
1類(lèi):$.when(pro1,pro1) 將多個(gè) promise 對(duì)象以and的關(guān)系 合并為1個(gè)
2類(lèi):promise 激發(fā)為 解決 deferred.resolve([ args ] ) deferred.resolveWith( context, [ args ] )
和 拒絕 .reject .rejectWith
context 上下文 替換 this 和通知 .notify .notifyWith
3類(lèi): 對(duì)激發(fā)的響應(yīng) 解決時(shí)deferred.done(args) 拒絕時(shí) deferred.fail() 通知時(shí) deferred.progress()
不管 解決 或 拒絕 deferred.always()
deferred.then( doneCallbacks, failCallbacks [, progressCallbacks] )
promise(或者叫deferred 延遲對(duì)象如何獲???)
var dfd = new $.Deferred(); return dfd.promise();
返回promise當(dāng)前狀態(tài)
deferred.state() pending(尚未完成) resolved rejected
管道
deferred.pipe( [ doneFilter ], [ failFilter ] )
var defer = $.Deferred()
var filtered = defer.pipe( null, function( value ) {
return value * 3;
});
defer.reject( 6 );
filtered.fail(function( value ) {
alert( "Value is ( 3*6 = ) 18: " + value );
});
以上這篇jquery Deferred 快速解決異步回調(diào)的問(wèn)題就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考