Art*_*lov 4 nested ios swift rx-swift
我已经开始学习 RxSwift,但有些时候无法理解。我必须在执行请求后创建一个按钮。像这样:
textField.rx.text
.flatMapLatest { text in
return performURLRequest(text)
}
.subscribe(onNext: { request in
// Create a button
let button = UIButton()
button.rx.tap
.subscribe({ _ in
// Action
}).disposed(by: self.disposeBag)
self.view.addSubview(button)
})
.disposed(by: disposeBag)
Run Code Online (Sandbox Code Playgroud)
如何避免嵌套订阅调用?由于这种代码气味。
您可以通过使用flatMapeg (orEmpty 是可选的)来避免嵌套订阅
textField.rx.text.orEmpty
.flatMapLatest { text in
return performURLRequest(text)
}
.flatMap { request -> Observable<Void> in
// Create a button
let button = UIButton()
self.view.addSubview(button)
return button.rx.tap.asObservable()
}
.subscribe({ _ in
// Action
}).disposed(by: self.disposeBag)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1975 次 |
| 最近记录: |