RxSwift Tips

4 分钟读完

  • 始终努力对你的系统全部或者部分建模为纯函数,这些纯函数可以轻松测试,还可以用来修改操作符行为
  • 当使用 Rx 的时候,首先尝试组合内建的操作符
  • 如果经常使用操作符的组合,创建自己的便利操作符

e.g.

extension ObservableType where E: MaybeCool {

    public func coolElements()
        -> Observable<E> {
          return filter { e -> Bool in
              return e.isCool
          }
    }
}
  • Rx 操作符尽可能保持一般性来适用多成场景,但是总有难以建模的边界情况,这是你可以创建自己的操作符,可以在自建的操作符中引用内建的操作符
  • 始终使用操作符来撰写订阅

尽可能避免嵌套订阅,错误的例子如下

textField.rx.text.subscribe(onNext: { text in
	performURLRequest(text).subscribe(onNext: { result in
		...
	})
  .disposed(by: disposeBag)
})
.disposed(by: disposeBag)

优选使用操作符链接 disposable

  textField.rx.text
      .flatMapLatest { text in
          // Assuming this doesn't fail and returns result on main scheduler,
          // otherwise `catchError` and `observeOn(MainScheduler.instance)` can be used to
          // correct this.
          return performURLRequest(text)
      }
      ...
      .disposed(by: disposeBag) // only one top most disposable

留下评论