@@ -45,6 +45,22 @@ public void exampleDebounceDynamic() {
4545 // 9
4646 }
4747
48+ public void exampleThrottleWithTimeout () {
49+ Observable .concat (
50+ Observable .interval (100 , TimeUnit .MILLISECONDS ).take (3 ),
51+ Observable .interval (500 , TimeUnit .MILLISECONDS ).take (3 ),
52+ Observable .interval (100 , TimeUnit .MILLISECONDS ).take (3 )
53+ )
54+ .scan (0 , (acc , v ) -> acc +1 )
55+ .throttleWithTimeout (150 , TimeUnit .MILLISECONDS )
56+ .subscribe (System .out ::println );
57+
58+ // 3
59+ // 4
60+ // 5
61+ // 9
62+ }
63+
4864
4965 //
5066 // Test
@@ -85,5 +101,22 @@ public void testDebounceDynamic() {
85101 scheduler .advanceTimeBy (2100 , TimeUnit .MILLISECONDS );
86102 tester .assertReceivedOnNext (Arrays .asList (1 , 2 , 3 , 4 , 5 , 9 ));
87103 }
88-
89- }
104+
105+ @ Test
106+ public void testThrottleWithTimeout () {
107+ TestScheduler scheduler = Schedulers .test ();
108+ TestSubscriber <Integer > tester = new TestSubscriber <>();
109+
110+ Observable .concat (
111+ Observable .interval (100 , TimeUnit .MILLISECONDS , scheduler ).take (3 ),
112+ Observable .interval (500 , TimeUnit .MILLISECONDS , scheduler ).take (3 ),
113+ Observable .interval (100 , TimeUnit .MILLISECONDS , scheduler ).take (3 )
114+ )
115+ .scan (0 , (acc , v ) -> acc +1 )
116+ .throttleWithTimeout (150 , TimeUnit .MILLISECONDS , scheduler )
117+ .subscribe (tester );
118+
119+ scheduler .advanceTimeBy (2100 , TimeUnit .MILLISECONDS );
120+ tester .assertReceivedOnNext (Arrays .asList (3 , 4 , 5 , 9 ));
121+ }
122+ }
0 commit comments