如果发生错误,我目前正在使用retry()
重新订阅我的Observable
。
这样我的Subscriber
onError
就不会被调用:有办法让onError
被调用,然后重新订阅Observable
?< / p>
答案 0 :(得分:7)
通过Observable Contract如果你调用onError,那么你的observable将不再发出任何项目。仅仅因为这个原因,我认为你不应该尝试以这种方式实现它(允许错误传播给订阅者)。
如果您想在错误时执行任何操作,请尝试在doOnError()
之前使用retry()
。
所以你的代码看起来像这样:
getObservableThatMaybeEmitsTheError()
.doOnError(throwable -> LogTheErrorMethod(throwable))
.retry()
...
.subscribe()