回調(diào)函數(shù),優(yōu)化回調(diào)

$.Callbacks(['once']或者['memory']或者['unique']或者['stopOnFalse'])返回一個(gè)回調(diào)對象

假設(shè)用cb接收,cb.add(函數(shù)1,函數(shù)2)。

cb.fire()執(zhí)行存的函數(shù)??梢詡鲄ⅰ?/p>

創(chuàng)建cb對象的時(shí)候,加了memory,會記住存的函數(shù),不管在哪fire,都會執(zhí)行cb里所有函數(shù)

加unique,同樣的函數(shù)只會執(zhí)行一次。

加stopOnFalse,碰到返回false的函數(shù),結(jié)束執(zhí)行。

JS單線程,異步編程優(yōu)化,防止阻塞界面。

var df = $.Deferred()延遲對象

不用傳參,有三種狀態(tài),done,fail,progress。分別有resolve,reject,notify觸發(fā)。

用類似這種形式存注冊的回調(diào)函數(shù)? ? ? ? df.done(function(參數(shù)){})? ? 也可以鏈?zhǔn)秸{(diào)用注冊。同一類型,可以注冊多個(gè)。

簡化注冊df.then(函數(shù)1,函數(shù)2,函數(shù)3)分別是done,fail,progress

然后用相應(yīng)的? ? ? ? ? ? ? ? ? df.resolve(自定義參數(shù))觸發(fā)

.then()注冊函數(shù)的返回值,會作為鏈?zhǔn)秸{(diào)用下次.then里相應(yīng)函數(shù)的參數(shù)。? 可以通過在每個(gè)注冊函數(shù)中創(chuàng)建新的$.deferred(),并返回相應(yīng)的.promise(),作為下次then()注冊函數(shù)的目標(biāo)

return? df.promise()返回注冊功能

圖片發(fā)自簡書App
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • jQuery的deferred對象詳解 作者: 阮一峰 日期: 2011年8月16日 jQuery的開發(fā)速度很快...
    nico1988閱讀 1,721評論 0 1
  • jQuery的deferred對象詳解 作者:阮一峰 一、什么是deferred對象? 開發(fā)網(wǎng)站的過程中,我們經(jīng)常...
    JamHsiao_aaa4閱讀 355評論 0 0
  • 一、什么是deferred對象? 開發(fā)網(wǎng)站的過程中,我們經(jīng)常遇到某些耗時(shí)很長的javascript操作。其中,既有...
    你為什么無理取鬧閱讀 443評論 0 4
  • 源代碼 deffered的使用說明() ajax的使用 運(yùn)行代碼示例在上面的代碼中,$.ajax()接受一個(gè)對象參...
    YAMI_1d00閱讀 456評論 0 0
  • 抽象來說,deferreds 可以理解為表示需要長時(shí)間才能完成的耗時(shí)操作的一種方式,相比于阻塞式函數(shù)它們是異步的,...
    北方蜘蛛閱讀 1,650評論 1 5

友情鏈接更多精彩內(nèi)容