$.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()返回注冊功能
