【问题标题】:RxJava observable: Invoke onError and then retryRxJava observable:调用 onError 然后重试
【发布时间】:2017-12-11 17:51:11
【问题描述】:

如果出现错误,我目前正在使用retry() 重新订阅我的Observable。 这样我的SubscriberonError 就不会被调用:有办法让onError 被调用然后重新订阅Observable

【问题讨论】:

    标签: rx-java


    【解决方案1】:

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

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

    所以您的代码可能如下所示:

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

    【讨论】:

      猜你喜欢
      • 2018-02-20
      • 1970-01-01
      • 2020-05-13
      • 1970-01-01
      • 2017-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-20
      相关资源
      最近更新 更多