Angularjs $q.all()-返回的响应不按顺序

Angularjs $q.all()-返回的响应不按顺序,angularjs,promise,es6-promise,angular-promise,Angularjs,Promise,Es6 Promise,Angular Promise,我有一系列承诺,顺序如下: promises = [promise1, promise2, promise3, promise 4, promise5]; 每个承诺都是一个http调用。 我试图通过以下方式检索响应: $q.all(promises).then(function f(responses) { console.log(responses); }); 并希望返回的响应按以下顺序进行: promises = [promise1, promise2, promise3, p

我有一系列承诺,顺序如下:

promises = [promise1, promise2, promise3, promise 4, promise5];
每个承诺都是一个http调用。

我试图通过以下方式检索响应:

$q.all(promises).then(function f(responses) { 
    console.log(responses);
});
并希望返回的响应按以下顺序进行:

promises = [promise1, promise2, promise3, promise 4, promise5];
response1,response2,response3,response4,response5

但有时返回的响应顺序是随机的:

response1,response2,response4,response5,response3

$q.all()方法是否不维护返回的响应顺序

如果$q.all()没有,是否还有其他方法可以保持返回的响应顺序?我宁愿不使用承诺链,因为我的承诺可能是一长串


提前谢谢

事实上,$q.all()并不维护返回的响应顺序。如果一个或多个提供的承诺被拒绝,它只会触发拒绝;如果/当所有提供的承诺都得到解决,它会触发解决

该API中没有其他方法用于维护承诺列表中的响应顺序

承诺链的广义实现是可能的,但非常复杂