RxJava observable:调用onError然后重试

bre*_*123 3 rx-java

如果发生错误retry(),我目前正在重新订阅我Observable.这样一来我SubscriberonError不叫:有一种方法让onError被调用,然后重新订阅Observable

Mat*_*Bos 7

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

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

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

getObservableThatMaybeEmitsTheError()
    .doOnError(throwable -> LogTheErrorMethod(throwable))
    .retry()
    ...
    .subscribe()
Run Code Online (Sandbox Code Playgroud)