RxJava:合并多个单项并在某些失败后完成

IS1*_*_SO 4 rx-java2

我想合并两个,Single<MyData>这样如果其中一个失败但另一个成功,则报告失败的错误和另一个的发射,然后结果Single<MyData>(或Observable<MyData>)完成。

如果两者都Single<MyData>失败,那么结果也应该失败并且也被标记为失败。

我最后想要的是:

  • 如果两者都成功,则发出的值和生产者标记为已完成。
  • 如果一个成功而另一个失败,则发出的值、抛出的错误和生产者标记为完成。
  • 如果全部失败,则错误和生产者标记为失败。

这就像“或”运算

tyn*_*ynn 5

这不可能。只允许有一个终端事件。的合同Single是success|error. 如果您还需要接收下一个事件,则应考虑改用Observable。合同Observable是next* complete|error,但你仍然没有得到完整的合同。

Observable.mergeDelayError(single1.toObservable(), single2.toObservable())
Run Code Online (Sandbox Code Playgroud)