Rx java 如何根据输出重试Observable

Rx java 如何根据输出重试Observable,rx-java,Rx Java,假设我有一个可观察的,它可能会也可能不会发出事件,这意味着只调用onComplete(),而不调用onNext()。如果没有发出事件,我需要从可观察的重复该操作。我该怎么做?谢谢大家! 切换ifempty可能有帮助: source.switchIfEmpty( Observable.error(new RuntimeException("is empty"))) .retry() 请记住,上面抛出的错误以外的错误也会提示重试,这可能并不理想。在这种情况下,我建

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

切换ifempty
可能有帮助:

source.switchIfEmpty(
           Observable.error(new RuntimeException("is empty")))
      .retry()
请记住,上面抛出的错误以外的错误也会提示重试,这可能并不理想。在这种情况下,我建议使用不同的
重试
重载:

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

switchIfEmpty
可能有帮助:

source.switchIfEmpty(
           Observable.error(new RuntimeException("is empty")))
      .retry()
请记住,上面抛出的错误以外的错误也会提示重试,这可能并不理想。在这种情况下,我建议使用不同的
重试
重载:

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