RxSwift 操作符实战:从理论到项目应用
1. flatMapLatest 与 materialize、dematerialize 操作符
在 RxSwift 中,flatMapLatest 操作符与之前的 flatMap 有所不同。以学生成绩为例,当使用 flatMapLatest 时,若切换到新的可观察对象,之前对象的变化将不再影响结果。
example(of: "materialize and dematerialize") {
// 1
enum MyError: Error {
case anError
}
let disposeBag = DisposeBag()
// 2
let laura = Student(score: BehaviorSubject(value: 80))
let charlotte = Student(score: BehaviorSubject(value: 100))
let student = BehaviorSubject(value: laura)
// 1
let studentScore = student
.flatMapLatest {
$0.score
}
// 2
studentScore
.subscribe(onNext: {
print($0)
})
.disposed(by: disposeBag)
// 3
超级会员免费看
订阅专栏 解锁全文
5

被折叠的 条评论
为什么被折叠?



