gpt4 book ai didi

angular - $q.all() 和 $q.race() 相当于 Angular 2 中的 Observables

转载 作者:太空狗 更新时间:2023-10-29 19:30:36 24 4
gpt4 key购买 nike

由于 Angular 2 中两个不同的 $http 调用,我有两个 Observables。

现在,我想要一个组合的 Observable...

  1. 当两个源 Observables 之一“触发”时“触发”(race case)。
  2. 当两个(或所有)Observables“触发”(所有情况)时“触发”。

如何解决这个问题?

最佳答案

RxJS 有运算符来完成这两项任务。正如您提到的 Angular 2,我指的是 RxJS 版本 5。对于 RxJS 版本 4,运算符的命名不同。

对于比赛任务,有一个 RxJS 运算符 racePromise.race 行为对齐。在版本 4 中,运算符称为 amb。当从 promises 切换到 observables 时,请注意在 observable 的情况下可能有不止一项。这意味着首先发出项目的 Observable 将获胜,您将收到从该 Observable 发出的所有项目,直到它完成。

对于希望等待所有可观察对象发出一个值的用例,您可以使用 combineLatest 运算符。您需要传递一些关于如何组合发出的事件的函数,这可能是返回给定数组或将数组项合并到一个对象中。

关于angular - $q.all() 和 $q.race() 相当于 Angular 2 中的 Observables,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39816355/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com