美文网首页
RxSwift文档七(技巧)

RxSwift文档七(技巧)

作者: 酒茶白开水 | 来源:发表于2020-07-24 15:05 被阅读0次

    技巧

    • 尽量构建为纯函数。这些纯函数可以轻松测试并且可用于修改操作符行为。
    • 当使用Rx时,首先尝试使用内置运算符。
    • 如果经常使用某些运算符组合,创建便捷运算符。
      例如
    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)
    

    chaining disposables的首选方式是使用操作符。

    textField.rx.text
        .flatMapLatest { text in
            // 假设这不会失败并在主调度程序上返回结果,
            // 否则可以正确使用`catchError`和`observeOn(MainScheduler.instance)`
            
            return performURLRequest(text)
        }
        ...
        .disposed(by: disposeBag) // 只有一个最顶层的disposable
    

    相关文章

      网友评论

          本文标题:RxSwift文档七(技巧)

          本文链接:https://www.haomeiwen.com/subject/hkwjlktx.html