在RX代码中,.disposed被调用而无需执行任何操作,例如flatmap,subscribe。仅在我第一次构建应用程序时才会发生这种情况。
有人知道这里会发生什么吗?
这是我的代码
HTTP.getSomething()
.flatMap { (list) -> Single<Void> in
return HTTP.getList(withList: list)
}
.subscribe(onSuccess: { (storeList) in
log.debug("Finish!!!")
}, onError: { [weak self] (error) in
self?.presentAlert(error: error)
})
.disposed(by: self.disposeBag)
答案 0 :(得分:0)
在不尝试flatMap内部工作的情况下,可以处置所呈现的代码的唯一方法是,如果getSomething
发出完成而不发出值,或者它发出错误,或者删除了disposeBag 。这三件事之一正在发生。
由于您说它仅在首次构建时发生,所以我怀疑getSomething
试图在进行网络调用之前获得所需的所有信息,这将导致它发出错误。