rx java -如何根据Observable的输出重试它



假设我有一个Observable,它可能会或可能不会发出一个事件,这意味着只调用onComplete()而不调用onNext()。如果没有事件发出,我需要从Observable重复操作。我该怎么做呢?谢谢你!

switchIfEmpty可能有所帮助:

source.switchIfEmpty(
           Observable.error(new RuntimeException("is empty")))
      .retry()

请记住,除了上面抛出的错误之外,其他错误也会提示重试,这可能不是理想的。在这种情况下,我建议使用不同的retry过载:

source.switchIfEmpty(
           Observable.error(new EmptyException()))
      .retry((retryNumber, throwable) -> throwable instanceof EmptyException)

相关内容

  • 没有找到相关文章

最新更新