RxSwift, иногда .disposed звонят без звонка .subscribe - PullRequest
0 голосов
/ 24 декабря 2018

В коде rx .disposed вызывается без какой-либо работы, такой как flatmap, подписывайтесь.Это происходит только при первом создании приложения.

Кто-нибудь знает, что здесь происходит?

Это мой код

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) 

1 Ответ

0 голосов
/ 24 декабря 2018

Единственный способ, которым код, который вы представили, может быть удален без попытки работы внутри flatMap, это если getSomething испускает завершенное без выдачи значения, или если выдает ошибку, или если disposeBag удален.Одна из этих трех вещей происходит.

Поскольку вы говорите, что это происходит только при первой сборке, я подозреваю, что getSomething пытается выполнить сетевой вызов, прежде чем он получит всю необходимую информацию, что заставляет его выдавать ошибку.

...