標籤:always let 建立 style 註冊 api ted 同步 read
延遲物件,在jQuery的1.5引入,是通過調用jQuery.Deferred()方法建立一個可鏈式調用的工具對象。 它可以註冊多個回調到回調隊列, 調用回調隊列,準備代替任何同步或非同步函數的成功或失敗狀態。
deferred.alway()
當Deferred(延遲)對象解決或拒絕時,調用添加處理常式。
deferred.always( alwaysCallbacks [, alwaysCallbacks ] )
參數 alwaysCallbacks 類型 : 一個函數或函數數組
例子:
1 $.get("test.html").always( function() {2 console.log("$.get completed with success or error callback arguments");3 } );4 Object {readyState: 1}5 6 7 8 .get completed with success or error callback arguments
deferred.done()
當延遲物件結決時,添加處理常式 ,參數與deferred.alway() 相同
例子:
1 function b(){ 2 console.log("test"); 3 } 4 5 6 var dtd=$.Deferred(); // 建立延遲物件 7 dtd.resolve(); //改變延遲物件,延遲物件解決 8 dtd.done(b).done(function(){ 9 console.log("b is done");10 });11 12 test13 14 b is done
deferred.fail()
當延遲物件拒絕時被調用
1 var dtd = $.Deferred();2 dtd.reject();3 dtd.fail(function(){console.log("fail")});4 5 fail
deferred.resolve()
將延遲物件置為解決,並可執行回呼函數;
deferred.reject()
拒絕延遲物件,並執行回呼函數;
deferred.state()
確定一個延遲物件的目前狀態。這個方法不接受參數,只返回一個字串,為以下三個:
resolved:表示延遲物件在解決狀態;
rejected : 表示延遲物件為拒絕狀態;
pending : 表示延遲物件尚未解決狀態;
deferrred.then()
當Deferred(延遲)對象解決,拒絕或仍在進行中時,調用添加處理常式。
例子:
1 function a1() { 2 var dtd = $.Deferred(); 3 console.log("aa"); 4 dtd.resolve(); 5 6 return dtd; 7 } 8 9 var an= a1();10 11 an.then(function() {12 console.log("an");13 })14 15 aa16 17 an
Jquery 延遲物件