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 试图在它拥有它需要的所有信息之前进行网络调用,这导致它发出错误。