Skip to content

Commit a78f0f5

Browse files
Add retryWhen example to Javadoc
1 parent 543f8d5 commit a78f0f5

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

rxjava-core/src/main/java/rx/Observable.java

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6268,6 +6268,34 @@ public final Observable<T> retry(Func2<Integer, Throwable, Boolean> predicate) {
62686268
* <img width="640" height="430" src="https://raw.github.com/wiki/Netflix/RxJava/images/rx-operators/retryWhen.f.png" alt="">
62696269
* <p>
62706270
* {@code retryWhen} operates by default on the {@code trampoline} {@link Scheduler}.
6271+
*
6272+
* Example:
6273+
*
6274+
* This retries 3 times, each time incrementing the number of seconds it waits.
6275+
*
6276+
* <pre> {@code
6277+
* Observable.create((Subscriber<? super String> s) -> {
6278+
* System.out.println("subscribing");
6279+
* s.onError(new RuntimeException("always fails"));
6280+
* }).retryWhen(attempts -> {
6281+
* return attempts.zip(Observable.range(1, 3), (n, i) -> i).flatMap(i -> {
6282+
* System.out.println("delay retry by " + i + " second(s)");
6283+
* return Observable.timer(i, TimeUnit.SECONDS);
6284+
* });
6285+
* }).toBlocking().forEach(System.out::println);
6286+
* } </pre>
6287+
*
6288+
* Output is:
6289+
*
6290+
* <pre> {@code
6291+
* subscribing
6292+
* delay retry by 1 second(s)
6293+
* subscribing
6294+
* delay retry by 2 second(s)
6295+
* subscribing
6296+
* delay retry by 3 second(s)
6297+
* subscribing
6298+
* } </pre>
62716299
*
62726300
* @param notificationHandler
62736301
* recieves an Observable of notifications with which a user can complete or error, aborting the retry.

0 commit comments

Comments
 (0)