【问题标题】:Wait and accumulate values until other observable fires等待并累积值,直到其他可观察到的火灾
【发布时间】:2017-07-21 08:12:32
【问题描述】:

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

observable1
  .take(1)
  .subscribe(doSomething)

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

【问题讨论】:

  • 您需要的不只是merge()concat() 吗?

标签: javascript rxjs rxjs5 reactivex


【解决方案1】:

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

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

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

【讨论】:

  • 完美!谢谢,这就是我想要的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-01-27
  • 1970-01-01
  • 1970-01-01
  • 2018-01-03
  • 2018-10-07
  • 2012-05-04
  • 2012-07-27
相关资源
最近更新 更多