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

プロミス/A+スペックより

2.2.6.1

If/whenpromiseが満たされている場合、それぞれonFulfilledのコールバックは、 への発信元の呼び出しの順序で実行する必要がありますthen

于 2013-05-14T18:45:00.743 に答える