jquery 手册
Ajax
属性(Attributes)
回调对象(Callbacks ..
核心(Core)
CSS
数据(Data)
延迟对象(Deferred o ..
尺寸(Dimensions)
效果(Effects)
事件(Events)
表单(Forms)
文档操作(Manipulati ..
杂项(Miscellaneou ..
位置(Offset)
插件编写(Plugin Aut ..
属性(Properties)
选择器(Selectors)
遍历(Traversing)
工具(Utilities)

Returns: DeferredDeferred .deferred.then( Function doneCallbacks, Function failCallbacks, Function progressCallbacks )

描述:添加当延迟对象被解决或拒绝时调用的处理程序。
  • version added: 1.5
  • .deferred.then( Function doneCallbacks, Function failCallbacks )
  • doneCallbacks 一个函数或函数数组,当延迟被解决时调用。
    failCallbacks 一个函数或函数数组,当延迟被拒绝时调用。
  • version added: 1.7
  • .deferred.then( Function doneCallbacks, Function failCallbacks, Function progressCallbacks )
  • doneCallbacks 一个函数或函数数组,当延迟被解决时调用。
    failCallbacks 一个函数或函数数组,当延迟被解决时调用。
    progressCallbacks 一个函数或函数数组,当延迟需要通知进展时调用。

所有三个参数(包括progressCallbacks ,在jQuery的1.7 )可以是一个单独的函数或一个函数的数组。其中一个参数,也可以为 null ,如果没有该类型的回调是需要的。或者,使用 .done() .fail() 或者 .progress() 设置只有一个回调类型。

当递延解决,doneCallbacks被调用。若递延代替拒绝,failCallbacks被调用。从jQuery 1.7 起,deferred.notify() 或者deferred.notifyWith() 方法可以根据需要之前的递延解决或拒绝多次调用progressCallbacks

回调是在它们被添加的顺序执行。一旦deferred.then返回延迟对象,延迟对象的其它方法也可以链接到了这里,包括增加.then()方法。有关详细信息,请参阅 Deferred object.

Examples:

例子:

jQuery.get方法返回一个jqXHR对象时(一个延迟对象的派生),我们可以使用.then附加处理程序。
$.get("test.php").then(
    function(){ alert("$.get succeeded"); },
    function(){ alert("$.get failed!"); }
);