RxJava observable:调用onError然后重试

时间:2016-06-09 15:03:48

标签: rx-java

如果发生错误,我目前正在使用retry()重新订阅我的Observable。 这样我的Subscriber onError就不会被调用:有办法让onError被调用,然后重新订阅Observable?< / p>

1 个答案:

答案 0 :(得分:7)

通过Observable Contract如果你调用onError,那么你的observable将不再发出任何项目。仅仅因为这个原因,我认为你不应该尝试以这种方式实现它(允许错误传播给订阅者)。

如果您想在错误时执行任何操作,请尝试在doOnError()之前使用retry()

所以你的代码看起来像这样:

getObservableThatMaybeEmitsTheError()
    .doOnError(throwable -> LogTheErrorMethod(throwable))
    .retry()
    ...
    .subscribe()