将可观察值与其他任何一个的最新值和先前值组合

时间:2018-11-06 13:51:02

标签: rxjs observable combinelatest

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

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

我尝试使用CombineLatest,它是完美的,除了所有可观察对象的值都应具有最新值/变化的第一个行为。

1 个答案:

答案 0 :(得分:1)

您可以在将每个可观察到的源传递给startWith之前,先为它们加上combineLatest运算符:

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

然后,您必须手动检查什么是null