等待并累积值直到其他可观察到的火灾

时间:2017-03-01 20:18:27

标签: javascript rxjs rxjs5 reactivex

我有两个可观察对象,我想要每个只有一个值。如果observable2首先推送一个值,我想等待并保持收到的值,直到observable1推送一个值然后推送保持值。基本上与skipUntil相同的行为,区别在于我不想丢弃该值。我想我可以通过连接观察者来做到这一点,但我想将它们分开。

observable1
  .take(1)
  .subscribe(doSomething)

observable2
  .take(1)
  // .skipUntil(observable1)
  .waitUntil(observable1) // Something like this
  .subscribe(doSomethingElse)

1 个答案:

答案 0 :(得分:1)

这将等待observable1推送然后切换到observable2:

observable1.switchMap(() => observable2)
           .take(1)
           .subscribe(doSomethingElse);

如果您希望observable1只触发一次(例如,如果您在示例中的其他位置订阅它),请考虑使用.share()