假设我有一个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)