【发布时间】:2020-05-22 03:59:56
【问题描述】:
map 和flatMap 之间的差异RxSwift 已解释here。现在我想在内部可观察对象发生变化时观察上部可观察实例。 我该怎么做?
我们来看例子,
func testFlatMap() {
let bag = DisposeBag()
struct Player {
var age: Int
var score: BehaviorSubject<Int>
}
let male = Player(age: 28, score: BehaviorSubject(value: 80))
let player = PublishSubject<Player>()
player.asObservable()
.flatMap { $0.score.asObservable() }
.subscribe(onNext: { print($0) })
.disposed(by: bag)
player.on(.next(male))
male.score.on(.next(100))
}
在上面的例子中,输出是,
80
100
正如预期的那样。但我想知道订阅块.subscribe(onNext: { print($0) }) 内的完整播放器对象状态(即播放器的age),但它只得到score。 我该怎么做?
我的预期输出是,
Player (where I can access both age:28 and score:80)
Player (where I can access both age:28 and score:100)
【问题讨论】:
标签: ios swift reactive-programming rx-swift flatmap