Rx 2 Android对于api调用有什么更好的Single或Observable?

Jos*_*hon 15 android rx-java rx-android retrofit2

当我们使用retrofit2与Rx进行API休息调用时,使用Single或Observable的最佳方法是什么?

public interface ApiService{

Single<Data> getDataFromServer();

Observable<Data> getDataFromServer();
}
Run Code Online (Sandbox Code Playgroud)

Lam*_*rak 18

我建议使用a,Single因为它更准确地表示数据流:你向服务器发出请求,你得到一个数据发送错误:

Single:     onSubscribe (onSuccess | onError)?
Run Code Online (Sandbox Code Playgroud)

Observable理论上,您可以获得多次数据排放错误

Observable: onSubscribe onNext? (onCompleted | onError)?
Run Code Online (Sandbox Code Playgroud)

但是,如果您使用,我建议使用a Maybe而不是Single.这两者之间的区别在于,Maybe当您从服务器获得响应但它不包含正文时,处理也是如此.

Maybe:      onSubscribe (onSuccess | onCompleted | onError)?
Run Code Online (Sandbox Code Playgroud)


Yar*_*hiy 7

区别Observable和之间的区别Single是语义.当你宣布某些东西时,Single你说这个可观察的东西只会产生一个值而不是一系列的值.

使用适当的语义类型是记录API的最佳方式.