rx-java2 - RxJava : Merge multiple singles and complete after some have failed

标签 rx-java2

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

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

最后我想要的是:

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

  • 这就像一个“或”操作

    最佳答案

    这不可能。只允许一个终端事件。契约(Contract)为Singlesuccess|error .如果您还需要接收下一个事件,则应考虑使用 Observable反而。契约(Contract)为Observablenext* complete|error ,但你仍然不会得到一个完整的。

    Observable.mergeDelayError(single1.toObservable(), single2.toObservable())
    

    关于rx-java2 - RxJava : Merge multiple singles and complete after some have failed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49777067/

    相关文章:

    rx-java - flatMap() observable 上的调度程序会影响外部 observable 上的调度程序吗?

    android - Room - 后台查询慢

    java - RxJava 2.0 - 如何结合 Observable 和 Completable

    rx-java2 - RxJava : substitute a subsequence of elements with a single element

    java - 创建一个以有限速率发出项目的 Flowable,以避免需要缓冲事件

    java - 为什么改造客户端在没有网络连接时会崩溃?

    android - RxJava 和改造的单元测试

    java - RXJava 停止在平面图中可观察

    android - 防止快速单击按钮并使用 rxjava 发出请求

    android - 使用 RXJava2 Flowable 过滤数据