Q promise:是否以与注册相同的顺序调用回调?

时间:2013-05-14 18:34:37

标签: javascript promise q

我正在使用Q承诺库。我的代码依赖于这样一个事实,即单个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();

这确实产生了正确的结果,但我不知道这是否是规范的一部分,或者是一个可以打破界限的快乐巧合。

1 个答案:

答案 0 :(得分:11)

来自Promises/A+ Spec

  

<强> 2.2.6.1

     

如果/ promise满足时,相应的onFulfilled回调必须按其原始来电then的顺序执行。