W documentation for RetryWhen przykładzie nie idzie tak:błąd Złap jeśli retryWhen: s prób zabraknie
Observable.create((Subscriber<? super String> s) -> {
System.out.println("subscribing");
s.onError(new RuntimeException("always fails"));
}).retryWhen(attempts -> {
return attempts.zipWith(Observable.range(1, 3), (n, i) -> i).flatMap(i -> {
System.out.println("delay retry by " + i + " second(s)");
return Observable.timer(i, TimeUnit.SECONDS);
});
}).toBlocking().forEach(System.out::println);
Ale w jaki sposób propagować błąd, jeśli zabraknie prób?
Dodanie .doOnError(System.out::println)
po klauzuli retryWhen
nie przechwytuje błędu. Czy to jest nawet emitowane?
Dodawanie .doOnError(System.out::println)
przed retryWhen wyświetlacze always fails
dla wszystkich prób.
Hmm, dlaczego głosowanie w dół? To jest biblioteka z testami jednostkowymi. –