jQuery getJSON回调的顺序?

时间:2014-02-07 16:53:04

标签: javascript jquery

jQuery的$.getJSON()接受donefailalways的回调

http://api.jquery.com/jquery.getjson/

我没有看到这些被调用的顺序。我能否期望在done之前始终触发failalways

2 个答案:

答案 0 :(得分:3)

这很容易测试: http://jsfiddle.net/2EnxL/

var d = new $.Deferred();
d.done(function () { console.log("done"); });
d.always(function () { console.log("always"); });
d.done(function () { console.log("done2"); });
d.always(function () { console.log("always2"); });
d.resolve();

输出:

done
always
done2
always2

所以回调被称为按顺序。这对我来说似乎也是最有意义的。

alwaysfinally不同,它只是一种结合faildone的方法。

答案 1 :(得分:2)

这是所有Deferred回调方法的文档

  

当Deferred被解决或拒绝时,将执行回调   他们被添加的顺序

Deferred.always docs
Deferred.done docs