返回值:Deferred Objectdeferred.then(doneFilter [, failFilter ] [, progressFilter ])
jQuery Deferred.then() 方法概述
添加處理程序被調(diào)用時(shí),遞延對(duì)象得到解決或者拒絕。
所有三個(gè)參數(shù)(包括progressCallbacks ,在jQuery的1.7 )可以是一個(gè)單獨(dú)的函數(shù)或一個(gè)函數(shù)的數(shù)組。 其中一個(gè)參數(shù),也可以為空,如果沒有該類型的回調(diào)是需要的?;蛘撸褂?done()或.fail()僅設(shè)置doneCallbacks或failCallbacks。當(dāng)遞延解決,doneCallbacks被調(diào)用。若遞延代替拒絕,failCallbacks被調(diào)用?;卣{(diào)按他們添加的順序執(zhí)行。一旦deferred.then返回延遲對(duì)象,延遲對(duì)象的其它方法也可以鏈接到了這里,包括增加.then()方法。有關(guān)詳細(xì)信息,請(qǐng)參閱文件Deferred object 。
參數(shù)
doneFilter [, failFilter ] [, progressFilter ]StringV1.8
doneFilter: 當(dāng)Deferred(延遲)對(duì)象得到解決時(shí)被調(diào)用的一個(gè)函數(shù)。
failFilter: [可選]當(dāng)Deferred(延遲)對(duì)象拒絕時(shí)被調(diào)用的一個(gè)函數(shù)。
progressFilter:[可選]當(dāng)Deferred(延遲)對(duì)象生成進(jìn)度通知時(shí)被調(diào)用的一個(gè)函數(shù)。
doneCallbacks,failCallbacksStringV1.5
doneCallbacks: 一個(gè)函數(shù)或函數(shù)數(shù)組,當(dāng)延遲成功時(shí)調(diào)用。
failCallbacks: 一個(gè)函數(shù)或函數(shù)數(shù)組,當(dāng)延遲失敗時(shí)調(diào)用。
doneCallbacks, failCallbacks [, progressCallbacks]StringV1.7
doneCallbacks: 一個(gè)函數(shù)或函數(shù)數(shù)組,當(dāng)延遲解決時(shí)調(diào)用。
failCallbacks: 一個(gè)函數(shù)或函數(shù)數(shù)組,當(dāng)延遲拒絕時(shí)調(diào)用。
progressCallbacks: 一個(gè)可選的函數(shù),當(dāng)延遲對(duì)象通知進(jìn)度(progress)時(shí)被調(diào)用。
示例
描述:
一旦jQuery.get方法返回一個(gè)來自延遲的對(duì)象的jqXHR對(duì)象,我們可以附加一個(gè)成功回調(diào)使用.then方法。
jQuery 代碼:
$.get("test.php").then(
function(){ alert("$.get succeeded"); },
function(){ alert("$.get failed!"); }
);