【发布时间】:2014-03-26 10:38:07
【问题描述】:
牢记以下声明:
一旦对象进入已解决或已拒绝状态,它就会保持该状态。回调仍然可以添加到已解决或已拒绝的 Deferred 中——它们将立即执行。
您希望这段代码产生什么效果:
var d = $.Deferred();
var a = function() {
d.done(function() {
console.log('inner');
});
console.log('outer');
};
d.done(a);
d.resolve();
?
我希望它是 inner,然后是 outer。而我检查的任何 jquery 版本都不是这种情况。
你会认为这是一个错误还是我错过了描述中的要点?
对应的JSFiddle:http://jsfiddle.net/U8AGc/
UPD:问题的一些背景知识:我希望 a 方法的行为相似,无论它是如何被调用的:就像 a() 或 d.done(a)
【问题讨论】:
-
这只是不遵循 Promises/A+ 时的怪事之一 :-)
标签: javascript jquery promise