-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathRxJavaErrorExam8.java
More file actions
38 lines (34 loc) · 1.37 KB
/
RxJavaErrorExam8.java
File metadata and controls
38 lines (34 loc) · 1.37 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import rx.Observable;
import rx.functions.Func1;
import rx.functions.Func2;
import java.util.concurrent.TimeUnit;
public class RxJavaErrorExam8 {
public static void main(String[] args) {
Observable
.create((Observable.OnSubscribe<String>) subscriber -> {
log("subscribe");
subscriber.onNext("emit 1");
subscriber.onNext("emit 2");
subscriber.onError(new Throwable());
})
.retryWhen(new Func1<Observable<? extends Throwable>, Observable<?>>() {
@Override
public Observable<?> call(final Observable<? extends Throwable> observable) {
return observable.flatMap(new Func1<Throwable, Observable<?>>() {
@Override
public Observable<?> call(Throwable throwable) {
return Observable.timer(3, TimeUnit.SECONDS);
}
});
}
})
.subscribe(
s -> log("on next: " + s),
throwable -> log("error:" + throwable),
() -> log("completed")
);
}
public static void log(String message) {
System.out.println(message);
}
}