Observable<Integer> call = Observable.create(emitter -> {
emitter.onNext(1);
emitter.onError(new Throwable("Error"));
});
call
.retryWhen(throwableObservable -> throwableObservable)
.subscribe(integer -> System.out.println(integer), throwable -> System.out.println(throwable.getMessage()));
This code is working as expected, (constantly printing '1'), but if I change it to:
.retryWhen(throwableObservable -> throwableObservable.delay(1, TimeUnit.SECONDS))
It will only print '1' once and not retry.