Promesa Q: ¿se invocan las devoluciones de llamada en el mismo orden en que se registraron?

Estoy usando elQ biblioteca de promesas Mi código se basa en el hecho de que las devoluciones de llamada para una promesa única se ejecutan en el mismo orden en que se registraron.

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();

Esto produce el resultado correcto, pero no sé si es parte de la especificación o una feliz coincidencia que podría romper la línea.

Respuestas a la pregunta(1)

Su respuesta a la pregunta