RxSwift:Single <t>,Single <t?>或Maybe <t>?

时间:2018-03-13 10:51:42

标签: swift traits rx-swift reactivex

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

REST API请求例如# creates the total count of the 1-gram qgrams(a, q = 1L) h m o a b c V1 1 4 1 2 2 1 # create a named vector if you want a nice table names(a) <- a qgrams(a, .list = a, q = 1L) #V1 is the total line h m o a b c V1 1 4 1 2 2 1 ham 1 1 0 1 0 0 bamm 0 2 0 1 1 0 comb 0 1 1 0 1 1 可以产生一个实体或404.在这种情况下,最好的RxSwift trait使用什么?

  • 如果找不到实体,则发出GET /entity/{id} - 事件的Single<T>
  • 如果找不到实体,则发出error - 事件的Single<T?>
  • .next(nil)不会发出任何元素,只有在找不到实体时才会完成

什么是最佳做法?

1 个答案:

答案 0 :(得分:2)

API设计始终是个人偏好的问题,但恕我直言,我会使用常规Single<T>

如果您发现自己使用Single<T?>,则可能意味着使用Maybe :)

我要么

Single<T> - 并使用materialize()或定期捕捉

处理错误

Single<Result<T>> - 使用中间结果类型,以便错误不会终止序列。