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

标签 javascript rxjs rxjs5 reactivex

我有两个可观察量,我只想从每个可观察量中获得一个值。如果 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() .

关于javascript - 等待并积累值,直到其他可观察到的火灾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42541244/

相关文章:

javascript - 更改 mousedown javascript 的范围值?

javascript - 轻松解决冲突

javascript - $_GET 停止用于删除记录

angular - 简单的 Angular2 Reactive Form 控件启用状态更改

angular - 如何在一条语句中使用 Switch Map 进行过滤和映射?

javascript - 每 x 毫秒计算一个平均值

javascript - 如果其父元素有 "margin: 0 auto",如何将元素定位在光标下?

javascript - 如何将一个 RXJ 流用于 2 件不同的事情

angular - 开始第一次调用 IntervalObservable 即时

Angular 服务 - 返回的对象类型是对象,而不是指定的泛型类型