【问题标题】:RxJava2: Alternative to Observable<Void>RxJava2:替代 Observable<Void>
【发布时间】:2017-02-07 15:44:37
【问题描述】:

我有一个 API,它只返回错误/成功代码,没有正文。对于 RxJava1,我会使用 Observable&lt;Void&gt; 作为此调用的返回值。

我可以为 RxJava2 使用什么? RxJava2 (link) 的 Wiki 上的提示没有帮助,因为我无法更改 API 的工作方式。

设置:

compile 'com.squareup.retrofit2:retrofit:2.1.0'
compile 'com.squareup.retrofit2:converter-gson:2.1.0'
compile 'com.jakewharton.retrofit:retrofit2-rxjava2-adapter:1.0.0'

【问题讨论】:

  • 你真的尝试过使用 Observable 吗?我使用 RxJava 2 和 Observable,没有任何问题。
  • Observable of Void 发送了一个终端事件,我认为。

标签: android rx-android rx-java2


【解决方案1】:

使用Completable

如果操作成功,它会发出一个成功的终止事件。如果失败,您可以使用自己的Exception 子类来包装必要的错误代码。

【讨论】:

    【解决方案2】:

    您仍然可以使用 Observable,但将 Void 类型替换为这样定义的枚举类型

    public enum Terminal {
        TERMINAL
    }
    

    然后像这样使用它

    Observable<Terminal>
    

    PS:你可以为枚举命名任何你想要的名字

    【讨论】:

      猜你喜欢
      • 2018-07-22
      • 2017-09-17
      • 1970-01-01
      • 2017-10-15
      • 1970-01-01
      • 1970-01-01
      • 2017-07-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多