用法
deferred.then( doneFilter [, failFilter ] [, progressFilter ] ) => Promise
deferred.then( doneFilter [, failFilter ] [, progressFilter ] ) => Promise
說明:添加要在 Deferred 對象被解析、拒絕或仍在進行中時調用的處理程序。
-
添加的版本:1.8
deferred.then( doneFilter [, failFilter ] [, progressFilter ] )
-
添加的版本:1.5,刪除:1.8
deferred.then( doneCallbacks, failCallbacks )
-
添加的版本:1.7,刪除:1.8
deferred.then( doneCallbacks, failCallbacks [, progressCallbacks ] )
在 jQuery 1.8 之前,參數可以是函數或函數數組。
對於所有簽名,如果不需要該類型的回調,則參數可以是null
。或者,使用 .done()
、 .fail()
或 .progress()
僅設置一種類型的回調而不過濾狀態或值。
從 jQuery 1.8 開始, 這deferred.then()
方法返回一個新的 Promise,它可以通過函數過濾延遲的狀態和值,替換 now-deprecateddeferred.pipe()
方法。這doneFilter
和failFilter
函數過濾原始延遲的已解決/已拒絕狀態和值。這progressFilter
函數過濾對原始延遲的任何調用notify
或者notifyWith
方法。這些過濾器函數可以返回一個新值以傳遞給 Promise 的.done()
或者.fail()
回調,或者它們可以返回另一個可觀察對象(Deferred、Promise 等),它將其已解決/拒絕狀態和值傳遞給 Promise 的回調。如果使用的過濾器函數是null
, 或未指定,promise 將被解析或拒絕,並使用與原始值相同的值。
回調按照添加的順序執行。由於 deferred.then
返回一個 Promise,因此可以將 Promise 對象的其他方法鏈接到這個,包括額外的 .then()
方法。
例子:
由於
方法返回一個從 Deferred 對象派生的 jqXHR 對象,我們可以使用 jQuery.get
.then
方法附加處理程序。
|
過濾解析值:
|
演示:
過濾拒絕值:
|
連鎖任務:
|
相關用法
- JQuery deferred.done()用法及代碼示例
- JQuery deferred.always()用法及代碼示例
- JQuery deferred.promise()用法及代碼示例
- JQuery deferred.pipe()用法及代碼示例
- JQuery deferred.catch()用法及代碼示例
- JQuery deferred.fail()用法及代碼示例
- JQuery delay()用法及代碼示例
- JQuery delegate()用法及代碼示例
- JQuery dequeue()用法及代碼示例
- JQuery detach()用法及代碼示例
- JQuery data()用法及代碼示例
- JQuery die()用法及代碼示例
- JQuery dblclick()用法及代碼示例
- JQuery Mobile Popup initSelector用法及代碼示例
- JQuery Mobile Collapsibleset disabled用法及代碼示例
- JQuery UI Datepicker prevText用法及代碼示例
- JQuery ajaxError()用法及代碼示例
- JQuery Mobile Selectmenu defaults用法及代碼示例
- JQuery UI Tabs event用法及代碼示例
- JQuery UI Selectable appendTo用法及代碼示例
- JQuery UI :focusable Selector用法及代碼示例
- JQuery UI Selectmenu disabled用法及代碼示例
- JQuery UI Button classes用法及代碼示例
- JQuery .jquery用法及代碼示例
- JQuery .scroll()用法及代碼示例
注:本文由純淨天空篩選整理自jquery.com大神的英文原創作品 deferred.then()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。