我的代码更像是这样:
Path.Combine
所以我在某些情况下基本上会发出新的onNext事件来重复网络请求。
问题是以这种方式发出事件导致它仍然被flatMapFrist过滤掉。如果我将其包装在
中let requestResult = someSubject
.flatMapFirst{ [weak self] _ -> Observable<ResponseClass> in
return self?.triggerNetworkRequest() ?? Observable.never()
}.share()
requestResult.subscribe(onNext: { [weak self] response in
if someCondition {
self?.someSubject.onNext()
}
}).addDisposableTo(disposeBag)
它有效。
如何防止此事件被过滤掉?
答案 0 :(得分:0)
AFAIK,标准解决方案如下所示 -
let requests = PublishSubject<Observable<ResponseClass>>()
let requestResult: Observable<ResponseClass> = requests.switchLatest()
requests.onNext(triggerNetworkRequest()) // repeat whenever you need a fresh response
// subscribe to 'requestResult'