【问题标题】:Combine Observables with latest of any one and previous value of the other observables将 Observables 与任何一个的最新值和其他 observables 的先前值结合起来
【发布时间】:2018-11-06 13:51:02
【问题描述】:

假设我有可观察的 A、B、C。我必须听这三个的变化并改变计算。

即,当任何一个可观察对象的值发生变化时,我需要使用当前的新值和其余可观察对象的旧值重新计算。

我尝试使用 combineLatest,这是完美的,除了第一个行为是所有 observables 都应该具有最新/更改的值。

【问题讨论】:

  • combineLatest 已经这样做了。但首先,所有源 Observable 都必须发出至少一个值。
  • 我正在寻找一个选项,它可以在所有 observables 都没有第一次发射的情况下处理。

标签: rxjs observable combinelatest


【解决方案1】:

你可以在每个源 Observable 前面加上 startWith 运算符,然后再将它们传递给 combineLatest

combineLatest(
  obsA$.pipe(startWith(null)),
  obsB$.pipe(startWith(null)),
  obsC$.pipe(startWith(null)),
)

然后您必须手动检查 null 的值。

【讨论】:

  • 谢谢!这是我一直在寻找的解决方案,在我的情况下,我传递了我可以使用的现有/默认值而不是 null,它就像一个魅力!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-27
  • 2018-08-15
相关资源
最近更新 更多