jQuery 教程
一個(gè)參數(shù)傳遞給 $.when() 被受理,執(zhí)行回調(diào)函數(shù)
$.when() 函數(shù)提供一種方法來執(zhí)行一個(gè)或多個(gè)對象的回調(diào)函數(shù)。
提示:如果向 jQuery.when 傳入一個(gè)延遲對象,那么會返回它的 Promise 對象(延遲方法的一個(gè)子集)。 可以繼續(xù)綁定 Promise 對象的其它方法,例如, defered.then 。當(dāng)延遲對象已經(jīng)被受理(resolved) 或被拒絕(rejected)(通常是由創(chuàng)建延遲對象的最初代碼執(zhí)行的),那么就會調(diào)用相應(yīng)的回調(diào)函數(shù)。
參數(shù) | 描述 |
---|---|
deferreds | Deferred類型 一個(gè)或多個(gè)延遲對象,或者普通的JavaScript對象 |
如果你不傳遞任何參數(shù),jQuery.when()將返回一個(gè)resolved(受理)狀態(tài)的 promise 對象。
不傳遞任何參數(shù),執(zhí)行回調(diào)函數(shù)
在多個(gè)延遲對象傳遞給jQuery.when() 的情況下,該方法返回一個(gè)新的"宿主"延遲對象,當(dāng)所有的延遲對 象被受理(resolve)時(shí),該方法才會受理它的宿主延遲對象。當(dāng)其中有一個(gè)延遲對象被拒絕(rejected)時(shí), 該方法就會拒絕它的宿主延遲對象。當(dāng)宿主對象被受理時(shí),doneCallbacks(受理回調(diào))將被執(zhí)行。
傳入多個(gè)延遲對象
如果沒有值傳遞給延遲對象的受理(resolved)事件,那么相應(yīng)的doneCallback參數(shù) 將是undefined。 如果傳遞給延遲對象的受理(resolved)事件為單個(gè)的值, 相應(yīng)的參數(shù) 將保留那個(gè)值。 在傳遞給延遲對象的解決(resolved)事件為為多個(gè)值的情況下, 相應(yīng)的 參數(shù)將是這些值組成的數(shù)組。
傳入多個(gè)不同類型的延遲對象
在多個(gè)延遲的情況下,如果延遲對象之一被拒絕(rejected),jQuery.when()觸發(fā)立即 調(diào)用 "宿主" 延遲對象的 failCallbacks 回調(diào)函數(shù)。
多個(gè)延遲對象之一被拒絕時(shí)調(diào)用failCallbacks 回調(diào)函數(shù)