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

Conditionally combining two observables

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

进入 observable3 发出:

换句话说,对于 observable1 发射,它应该表现得像 combineLatest,对于 observable2 发射,它应该表现得像 merge

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

你可以这样做:

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

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

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

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