【问题标题】:RxSwift: Single<T>, Single<T?> or Maybe<T>?RxSwift:Single<T>、Single<T?> 还是 Maybe<T>?
【发布时间】:2018-03-13 10:51:42
【问题描述】:

我知道这有点味道,但是:

REST API 请求,例如GET /entity/{id} 可以产生一个实体或 404。在这种情况下,最好使用什么 RxSwift trait

  • 如果找不到实体,Single&lt;T&gt; 会发出 error 事件
  • 如果找不到实体,Single&lt;T?&gt; 会发出 .next(nil) 事件
  • Maybe&lt;T&gt; 不发出任何元素,如果未找到实体则完成

最佳做法是什么?

【问题讨论】:

    标签: swift traits rx-swift reactivex


    【解决方案1】:

    API 设计始终是个人喜好问题,但恕我直言,我会使用常规的Single&lt;T&gt;

    如果您发现自己使用Single&lt;T?&gt;,您可能打算使用Maybe :)

    我会这样做

    Single&lt;T&gt; - 并使用materialize() 或定期捕获来处理错误

    Single&lt;Result&lt;T&gt;&gt; - 使用中间结果类型,因此错误不会终止序列。

    【讨论】:

      猜你喜欢
      • 2016-08-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-24
      • 1970-01-01
      • 2013-09-07
      • 1970-01-01
      相关资源
      最近更新 更多