用法
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()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。