12

我正在使用Q Promise 库。我的代码依赖于这样一个事实,即单个 Promise 的回调按照与注册时相同的顺序执行。

http://jsfiddle.net/HgYtK/1/

var deferred = Q.defer();
var promise = deferred.promise;

['first', 'second', 'third'].forEach(function (position) {
  promise.then(function () {
    alert(position);
  });
});

deferred.resolve();

这确实产生了正确的结果,但我不知道它是规范的一部分还是可能打破界限的巧合。

4

1 回答 1

11

来自Promises/A+ 规范

2.2.6.1

如果/何时promise满足,则相应onFulfilled的回调必须按照它们对then.

于 2013-05-14T18:45:00.743 回答