jQuery jQuery.Deferred() 方法
定義和用法
$.Deferred() 是一個構造函數,用來返回一個鏈式實用對象方法來註冊多個回調,並且調用回調佇列,傳遞任何同步或非同步功能成功或失敗的狀態。
提示:1. $.Deferred() 構造函數創建一個新的 Deferred(延遲)對象, jQuery.Deferred 可傳遞一個可選的函數,該函數在構造方法返回之前被調用並傳遞一個新的 Deferred 對象作為函數的第一個參數。例如被調用的函數可以使用 deferred.then()來附加回調函數。
2. 一個 Deferred 對象開始於掛起狀態。任何使用 deferred.then(), deferred.always(), deferred.done(), 或者 deferred.fail() 添加到這個對象的回調函數都是排隊等待執行的。調用 deferred.resolve() 或 eferred.resolveWith() 轉換延遲到解決狀態後立即執行設置的 doneCallbacks 。調用 deferred.reject() 或 deferred.rejectWith() 轉換延遲到拒絕狀態後立即執行設置的 failCallbacks 。一旦對象已經進入瞭解決或拒絕狀態,它保持該狀態。回調仍然可以添加到已解決或已拒絕的 Deferred 對象——它們會立即執行。
語法
$.Deferred( [beforeStart ] )
參數 | 描述 |
---|---|
beforeStart | Function( Deferred deferred )類型 一個在構造函數返回之前調用的函數 |