RxSwift - Observable

375 阅读1分钟
  • Single 是 Observable 的另外一个版本。不像 Observable 可以发出多个元素,它要么只能发出一个元素,要么产生一个 error 事件。对Observable 调用.asSingle() 方法,将他转换成Single。
    • 发出一个元素,或一个 error 事件
    • 不会共享状态变化
  • Completable 是 Observable 的另外一个版本。不像 Observable 可以发出多个元素,它要么只能产生一个 completed 事件,要么产生一个 error 事件。
    • 发出零个元素
    • 发出一个 completed 事件或者一个 error 事件
    • 不会共享状态变化
  • Maybe 是 Observable 的另外一个版本。它介于 Single 和 Completable 之间,它要么只能发出一个元素,要么产生一个 completed 事件,要么产生一个 error 事件。可以对 Observable 调用 .asMaybe() 方法,将它转换为 Maybe。
    • 发出一个元素或者一个 completed 事件或者一个 error 事件
    • 不会共享状态变化
  • Driver 它主要是为了简化 UI 层的代码。如果你遇到的序列具有以下特征,你也可以使用它:
    • 不会产生 error 事件
    • 一定在 MainScheduler 监听(主线程监听)
    • 共享状态变化 .asDriver 方法将 ControlProperty 转换为 Driver, .asDriver(onErrorJustReturn: Any) 错误处理
  • ControlEvent ControlEvent 专门用于描述 UI 控件所产生的事件,它具有以下特征:
    • 不会产生 error 事件
    • 一定在 MainScheduler 订阅(主线程订阅)
    • 一定在 MainScheduler 监听(主线程监听)
    • 共享状态变化