【发布时间】:2023-03-08 00:56:01
【问题描述】:
我的代码如下所示:
private let myPublishSubject = PublishSubject<Bool>()
func method(input: String) -> String {
if input == something {
myPublishSubject.onNext(true)
return update(input)
}
myPublishSubject.onNext(false)
return input
}
// Output
let driver: Driver<String>
init() {
let myObservable = Observable.just("a")
driver = Observable.combineLatest(myObservable, myPublishSubject)
.map {
...
}
.asDriver()
}
现在,在调试中,我发现driver 只是订阅和处置。当method 之后调用时,myPublishSubject.onNext 没有任何订阅者。
我该如何解决?
【问题讨论】:
-
PublishSubject在事件发生后立即流式传输,无需等待任何订阅者。因此,当触发事件并且未订阅驱动程序时,您将丢失该事件。查看 RxMarble 图了解更多信息:- reactivex.io/documentation/subject.html
标签: ios observable rx-swift object-lifetime combinelatest