【问题标题】:Subscribe to multiple observables and emit value when each is completed订阅多个可观察对象并在每个完成时发出值
【发布时间】:2023-02-09 21:19:07
【问题描述】:

在我的

ngOnInit()

我有这段代码:

combineLatest([ obs1, obs2, obs3]).subscribe(([obs1Res, Obs2Res, Obs3Res]) => { })

结果在完成时发出一次。

有没有一种方法可以为每个新完成的可观察对象发出信号并获得如下结果:

[null, 2, null], [1, 2, null], [1, 2, 3]

我将使用它来动态呈现页面并分配值(如果它们不为空)。

combineLatest([obs1, obs2, obs3]).subscribe(([obs1Res, Obs2Res, Obs3Res]) => {firstValue ??= Obs1Res; secondValue ??= Obs2Res; thirdValue ??= Obs3Res })

【问题讨论】:

  • zip就是你想要的!

标签: angular rxjs observable fork-join combinelatest


【解决方案1】:

combineLatest 将合并来自任何可观察对象的任何发射的所有最新值。如果你想要所有 observables 的所有最新信息,那么你可以使用zip()

您想要的可能有不同的解决方案。使用此可视化表示您希望从订阅中获得什么:https://rxmarbles.com/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-10-06
    • 1970-01-01
    • 2019-04-23
    • 2019-03-01
    • 1970-01-01
    • 2016-06-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多