RxJava2:Observable<Void>的替代方案

7

我有一个只返回错误/成功代码而没有内容的API。在RxJava1中,我会使用Observable<Void>作为此调用的返回值。

那么在RxJava2中我该使用什么?RxJava2的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<Void> 吗?我使用 RxJava 2 和 Observable<Void>,没有遇到任何问题。 - Andrej Jurkin
Observable of Void 发送一个终止事件,我认为。 - EpicPandaForce
1
https://dev59.com/CVgR5IYBdhLWcg3wO7U0#41563950 - Maksim Ostrovidov
2个回答

25

使用 Completable

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


0

你仍然可以使用Observable,但将Void类型替换为枚举类型,该枚举类型定义如下:

public enum Terminal {
    TERMINAL
}

然后像这样使用它

Observable<Terminal>

提示:您可以随意命名枚举


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接