我使用的Q承诺库。 我的代码依赖于单个承诺回调中,因为他们注册了相同的顺序执行的事实。
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();
这不产生正确的结果,但我不知道这是否是规范还是一个令人高兴的巧合,可能打破线的一部分。