如何根据输出重试 Observable
How to retry the Observable based on its output
假设我有一个 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)
假设我有一个 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)