RxSwift,有时 .disposed 会在不调用 .subscribe 的情况下被调用
RxSwift, Sometimes .disposed get called without calling .subscribe
在 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)
如果 getSomething
发出一个 completed 而没有发出一个值,或者它发出一个错误,或者如果 disposeBag被删除。这三件事中的一件正在发生。
既然你说它只发生在第一次构建时,我怀疑 getSomething
试图在它拥有它需要的所有信息之前进行网络调用,这导致它发出错误。
在 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)
如果 getSomething
发出一个 completed 而没有发出一个值,或者它发出一个错误,或者如果 disposeBag被删除。这三件事中的一件正在发生。
既然你说它只发生在第一次构建时,我怀疑 getSomething
试图在它拥有它需要的所有信息之前进行网络调用,这导致它发出错误。