需要结合以下两个可观察量:
observable1
发出{ x: value1 }
observable2
发出{ y: value2 }
发送到observable3
:
{ x: value1, y: value2 }
触发时{li> observable1
value2
是observable2
发出的最后一个值
当{ y: value }
触发时,observable2
换句话说,它应该combineLatest
代表observable1
代码merge
代表observable2
代价{/ 1}}。
有没有一种优雅的方式来做到这一点?
答案 0 :(得分:3)
你可以这样做:
observable3 = Rx.Observable.merge(observable1.withLatestFrom(observable2), observable2)
请注意combineLatest
在这里不起作用,因为它会等待observable2
生成一个值。 withLatestFrom
从observable2
获取最新值,无需等待。
我还建议您测试边缘情况:
observable2
尚未发出任何值(withLatestFrom
可能阻止并等待,文档中不清楚)observable2
在您创建observable3