jQuery 教程
$.Deferred() 是一個(gè)構(gòu)造函數(shù),用來返回一個(gè)鏈?zhǔn)綄?shí)用對象方法來注冊多個(gè)回調(diào),并且調(diào)用回調(diào)隊(duì)列,傳遞任何同步或異步功能成功或失敗的狀態(tài)。
提示:1. $.Deferred() 構(gòu)造函數(shù)創(chuàng)建一個(gè)新的 Deferred(延遲)對象, jQuery.Deferred 可傳遞一個(gè)可選的函數(shù),該函數(shù)在構(gòu)造方法返回之前被調(diào)用并傳遞一個(gè)新的 Deferred 對象作為函數(shù)的第一個(gè)參數(shù)。例如被調(diào)用的函數(shù)可以使用 deferred.then()來附加回調(diào)函數(shù)。
2. 一個(gè) Deferred 對象開始于掛起狀態(tài)。任何使用 deferred.then(), deferred.always(), deferred.done(), 或者 deferred.fail() 添加到這個(gè)對象的回調(diào)函數(shù)都是排隊(duì)等待執(zhí)行的。調(diào)用 deferred.resolve() 或 deferred.resolveWith() 轉(zhuǎn)換延遲到解決狀態(tài)后立即執(zhí)行設(shè)置的 doneCallbacks 。調(diào)用 deferred.reject() 或 deferred.rejectWith() 轉(zhuǎn)換延遲到拒絕狀態(tài)后立即執(zhí)行設(shè)置的 failCallbacks 。一旦對象已經(jīng)進(jìn)入了解決或拒絕狀態(tài),它保持該狀態(tài)?;卣{(diào)仍然可以添加到已解決或已拒絕的 Deferred 對象——它們會立即執(zhí)行。
參數(shù) | 描述 |
---|---|
beforeStart | Function( Deferred deferred )類型 一個(gè)在構(gòu)造函數(shù)返回之前調(diào)用的函數(shù) |