下記のようにsubscribe
時に必要な処理を全て書いても問題ないですが、Logger.log(text)
はイベント処理するための本質的なメソッドではないため、このような状態を許容しているとどんどんコードが見づらくなっていくことが予想できます。
incrementalSearchTextRelay.asObservable() .subscribe(onNext: {[weak textField] text in Logger.log(text) textField?.text = text }) .disposed(by: disposeBag)
そんな時はdo()
オペレーターを使って、ストリームに影響を与えず処理を行うとコードの可読性が向上します。
incrementalSearchTextRelay.asObservable() .do(onNext: { Logger.log($0) }) .subscribe(onNext: {[weak textField] text in textField?.text = text }) .disposed(by: disposeBag)
てな感じで本日も以上となります👷♀️
参考
- http://reactivex.io/documentation/operators/do.html
- https://qiita.com/yimajo/items/393ec9b3b445ec170ce4