Rx 2 Android 对于 api 调用,Single 或 Observable 哪个更好?
Rx 2 Android what is better Single or Observable for api calls?
当我们使用 retrofit2 对 Rx 进行 API rest 调用时,最好的使用方法是什么,Single 还是 Observable?
public interface ApiService{
Single<Data> getDataFromServer();
Observable<Data> getDataFromServer();
}
Observable
和 Single
之间的区别是语义上的。当你声明一些东西时 Single
你是说这个 observable 只会产生一个值,而不是一系列值。
使用正确的语义类型是记录您的 API 的最佳方式。
我建议使用 Single
,因为它更准确地表示数据流:您向服务器发出请求,然后您会收到一个数据发射 或 一个错误:
Single: onSubscribe (onSuccess | onError)?
对于一个 Observable
理论上你可以获得多个数据排放 AND 一个错误
Observable: onSubscribe onNext? (onCompleted | onError)?
但是,如果您使用 rx-java2, I'd suggest using a Maybe
而不是 Single
。两者之间的区别在于 Maybe
还处理从服务器获得响应但不包含正文的情况。
Maybe: onSubscribe (onSuccess | onCompleted | onError)?
当我们使用 retrofit2 对 Rx 进行 API rest 调用时,最好的使用方法是什么,Single 还是 Observable?
public interface ApiService{
Single<Data> getDataFromServer();
Observable<Data> getDataFromServer();
}
Observable
和 Single
之间的区别是语义上的。当你声明一些东西时 Single
你是说这个 observable 只会产生一个值,而不是一系列值。
使用正确的语义类型是记录您的 API 的最佳方式。
我建议使用 Single
,因为它更准确地表示数据流:您向服务器发出请求,然后您会收到一个数据发射 或 一个错误:
Single: onSubscribe (onSuccess | onError)?
对于一个 Observable
理论上你可以获得多个数据排放 AND 一个错误
Observable: onSubscribe onNext? (onCompleted | onError)?
但是,如果您使用 rx-java2, I'd suggest using a Maybe
而不是 Single
。两者之间的区别在于 Maybe
还处理从服务器获得响应但不包含正文的情况。
Maybe: onSubscribe (onSuccess | onCompleted | onError)?