我正在使用 jQuery.Deferred 并注册done
,fail
和then
处理程序:
$.when( some_ajax(url) )
.done(function(result){})
.fail(function(){})
.then(function(){}); //just like that, with a single parameter
我发现当我的 ajax 调用成功done
并then
按此顺序调用回调时。但是,当 ajax 失败时,会fail
调用回调,但我没有得到then
回调。
我已阅读 jQuery.Deferred 文档,但找不到有关此行为原因的提示。
当使用always
代替时then
,它在两种情况下都会被调用——成功和失败(首先done
/fail
被调用,然后always
被调用)。该文档似乎没有表明我所描述的场景之间的预期差异always
,then
为什么它们的行为不同?