从 Observable 获取最后一个值
Get last value from Observable
combineLatest
怎么可以用来return一个BehaviorSubject
?我试图从 observable 中获取最后一个值。
var things: Observable<Thing>
// driven by UI
var selectedThingIndex: PublishSubject<Int>
// this is a BehaviorSubject, because I need to get the latest value outside a subscriber
var currentThing: BehaviorSubject<Thing> = BehaviorSubject.combineLatest(things, selectedThingIndex) { things, index in
things[index]
}
// Get the last value
let thing = currentThing.value()
我无法编译它,因为 combineLatest
return 是一个 Observable
,它似乎无法转换为 BehaviorSubject
。我尝试了一个明确的演员表,例如as? BehaviorSubject<Thing?>
但 return 为零。
您必须创建 BehaviorSubject,然后将组合的可观察对象绑定到它:
let currentThing = BehaviorSubject<Thing?>(value: nil)
Observable.combineLatest(things, selectedThingIndex) { [=10=][] }
.bind(to: currentThing)
.disposed(by: bag)
combineLatest
怎么可以用来return一个BehaviorSubject
?我试图从 observable 中获取最后一个值。
var things: Observable<Thing>
// driven by UI
var selectedThingIndex: PublishSubject<Int>
// this is a BehaviorSubject, because I need to get the latest value outside a subscriber
var currentThing: BehaviorSubject<Thing> = BehaviorSubject.combineLatest(things, selectedThingIndex) { things, index in
things[index]
}
// Get the last value
let thing = currentThing.value()
我无法编译它,因为 combineLatest
return 是一个 Observable
,它似乎无法转换为 BehaviorSubject
。我尝试了一个明确的演员表,例如as? BehaviorSubject<Thing?>
但 return 为零。
您必须创建 BehaviorSubject,然后将组合的可观察对象绑定到它:
let currentThing = BehaviorSubject<Thing?>(value: nil)
Observable.combineLatest(things, selectedThingIndex) { [=10=][] }
.bind(to: currentThing)
.disposed(by: bag)