-
Notifications
You must be signed in to change notification settings - Fork 118
Expand file tree
/
Copy pathIntervalAndSchedulers.java
More file actions
59 lines (45 loc) · 1.21 KB
/
IntervalAndSchedulers.java
File metadata and controls
59 lines (45 loc) · 1.21 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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
package com.packtpub.reactive.chapter06;
import static com.packtpub.reactive.common.Helpers.debug;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
import rx.Observable;
import rx.Scheduler;
import rx.schedulers.Schedulers;
import com.packtpub.reactive.common.Program;
/**
* More information of {@link Observable#interval} and its default {@link Scheduler}.
*
* @author meddle
*/
public class IntervalAndSchedulers implements Program {
@Override
public String name() {
return "Observable.interval and Schedulers";
}
@Override
public int chapter() {
return 6;
}
@Override
public void run() {
CountDownLatch latch = new CountDownLatch(1);
Observable.range(5, 5).doOnEach(debug("Test")).subscribe();
Observable
.interval(500L, TimeUnit.MILLISECONDS)
.take(5)
.doOnEach(debug("Default interval"))
.doOnCompleted(() -> latch.countDown())
.subscribe();
try {
latch.await();
} catch (InterruptedException e) {}
Observable
.interval(500L, TimeUnit.MILLISECONDS, Schedulers.immediate())
.take(5)
.doOnEach(debug("Imediate interval"))
.subscribe();
}
public static void main(String[] args) {
new IntervalAndSchedulers().run();
}
}