我正在使用 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为什么它们的行为不同?