【问题标题】:$q.all() - responses returned not in sequence$q.all() - 不按顺序返回的响应
【发布时间】:2021-08-13 06:46:11
【问题描述】:

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

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

每个承诺都是一个 http 调用..

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

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

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

response1, response2, response3, response4, response5

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

response1, response2, response4, response5, response3

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

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

提前致谢!!

【问题讨论】:

    标签: angularjs promise es6-promise angular-promise


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-11-03
      • 2021-04-12
      • 2019-09-05
      • 1970-01-01
      • 2013-07-21
      • 2011-12-06
      • 2017-03-19
      相关资源
      最近更新 更多