【问题标题】:Rx 2 Android what is better Single or Observable for api calls?Rx 2 Android 对于 api 调用,Single 或 Observable 哪个更好?
【发布时间】:2017-06-18 08:28:15
【问题描述】:

当我们使用 retrofit2 通过 Rx 进行 API 休息调用时,最好的使用方法是什么,Single 还是 Observable?

public interface ApiService{

Single<Data> getDataFromServer();

Observable<Data> getDataFromServer();
}

【问题讨论】:

  • 如果我必须选择我会使用 Single,
  • 谢谢,我同意这一点,因为我们只消耗一个元素,但是我想获得更多关于选择一个或另一个元素的反馈。

标签: android rx-java retrofit2 rx-android


【解决方案1】:

我建议使用Single,因为它更准确地表示数据流:您向服务器发出请求,然后您会收到一个数据错误:

Single:     onSubscribe (onSuccess | onError)?

对于Observable,理论上您可以得到多个数据错误

Observable: onSubscribe onNext? (onCompleted | onError)?

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

Maybe:      onSubscribe (onSuccess | onCompleted | onError)?

【讨论】:

【解决方案2】:

ObservableSingle 之间的区别相当语义化。当你声明 Single 时,你是在说这个 observable 只会产生一个值,而不是一系列值。

使用正确的语义类型是记录 API 的最佳方式。

【讨论】:

  • 不是更对应单个响应,而不是单个对象吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多