有条理地组合两个可观察量

时间:2016-05-31 10:33:11

标签: javascript reactive-programming rxjs observable frp

需要结合以下两个可观察量:

  • observable1发出{ x: value1 }
  • observable2发出{ y: value2 }

发送到observable3

    { x: value1, y: value2 }触发时{li> observable1 value2observable2发出的最后一个值 当{ y: value }触发时,
  • observable2

换句话说,它应该combineLatest代表observable1代码merge代表observable2代价{/ 1}}。

有没有一种优雅的方式来做到这一点?

1 个答案:

答案 0 :(得分:3)

你可以这样做:

observable3 = Rx.Observable.merge(observable1.withLatestFrom(observable2), observable2)

请注意combineLatest在这里不起作用,因为它会等待observable2生成一个值。 withLatestFromobservable2获取最新值,无需等待。

我还建议您测试边缘情况:

  • observable2尚未发出任何值(withLatestFrom可能阻止并等待,文档中不清楚)
  • observable2在您创建observable3
  • 之前已完成