当我们使用 Retrofit2 通过 Rx 进行 API Rest 调用时,最好的使用方法是什么,单一还是可观察?
public interface ApiService{
Single<Data> getDataFromServer();
Observable<Data> getDataFromServer();
}
我建议使用Single
因为它更准确地表示了数据流:您向服务器发出请求,然后您会得到任一数据发射OR一个错误:
Single: onSubscribe (onSuccess | onError)?
For an Observable
理论上你可以获得多次数据发射AND一个错误
Observable: onSubscribe onNext? (onCompleted | onError)?
但是,如果您正在使用rx-java2 /questions/tagged/rx-java2,我建议使用Maybe https://github.com/ReactiveX/RxJava/wiki/What's-different-in-2.0#maybe代替Single
。这两者之间的区别在于Maybe
还处理当您从服务器获取响应但不包含正文时的情况。
Maybe: onSubscribe (onSuccess | onCompleted | onError)?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)