回调附加到done()
当延迟解决后将被解雇。回调附加到fail()
当 deferred 被拒绝时将被解雇。
在 jQuery 1.8 之前,then()
只是语法糖:
promise.then( doneCallback, failCallback )
// was equivalent to
promise.done( doneCallback ).fail( failCallback )
从 1.8 开始,then()
是一个别名pipe()
并返回一个新的承诺,请参阅here https://stackoverflow.com/questions/9583783/when-should-i-use-jquery-deferreds-then-method-and-when-should-i-use-the-pip欲了解更多信息pipe()
.
success()
and error()
仅适用于jqXHR
调用返回的对象ajax()
。它们是简单的别名done()
and fail()
分别:
jqXHR.done === jqXHR.success
jqXHR.fail === jqXHR.error
Also, done()
不限于单个回调,并且会过滤掉非函数(尽管 1.8 版本中存在一个字符串错误,应该在 1.8.1 中修复):
// this will add fn1 to 7 to the deferred's internal callback list
// (true, 56 and "omg" will be ignored)
promise.done( fn1, fn2, true, [ fn3, [ fn4, 56, fn5 ], "omg", fn6 ], fn7 );
同样适用于fail()
.