RxSwift - Observable

E=mc^2醬發表於2017-12-25
  • 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 監聽(主執行緒監聽)
    • 共享狀態變化

相關文章