【发布时间】:2017-12-11 17:51:11
【问题描述】:
如果出现错误,我目前正在使用retry() 重新订阅我的Observable。
这样我的Subscriber 的onError 就不会被调用:有办法让onError 被调用然后重新订阅Observable?
【问题讨论】:
标签: rx-java
如果出现错误,我目前正在使用retry() 重新订阅我的Observable。
这样我的Subscriber 的onError 就不会被调用:有办法让onError 被调用然后重新订阅Observable?
【问题讨论】:
标签: rx-java
Observable Contract 如果您调用 onError,那么您的 observable 将不再发出任何项目。仅出于这个原因,我认为您不应该尝试以这种方式实现它(允许错误传播给订阅者)。
如果您想在出现错误时执行任何操作,请尝试在 retry() 之前使用 doOnError()。
所以您的代码可能如下所示:
getObservableThatMaybeEmitsTheError()
.doOnError(throwable -> LogTheErrorMethod(throwable))
.retry()
...
.subscribe()
【讨论】: