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

Wait and accumulate values until other observable fires

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

observable1
  .take(1)
  .subscribe(doSomething)

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

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

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

如果您希望 observable1 只触发一次(例如,如果您像示例中那样在其他地方订阅它),请考虑使用 .share().