微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决$q.all() - 不按顺序返回的响应

我有一系列按以下顺序排列的承诺:

promises = [promise1,promise2,promise3,promise 4,promise5];

每个 promise 都是一个 http 调用..

我尝试通过以下方式检索回复

$q.all(promises).then(function f(responses) { 
    console.log(responses);
});

并希望返回的响应按以下顺序:

response1,response2,response3,response4,response5

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

response1,response5,response3

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

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

提前致谢!!

解决方法

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

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

promise 链的通用实现是可能的,但非常复杂。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。