- Learning RxJava
- Thomas Nield
- 277字
- 2021-07-02 22:22:57
takeWhile() and skipWhile()
Another variant of the take() operator is the takeWhile() operator, which takes emissions while a condition derived from each emission is true. The following example will keep taking emissions while emissions are less than 5. The moment it encounters one that is not, it will call the onComplete() function and dispose of this:
import io.reactivex.Observable;
public class Launcher {
public static void main(String[] args) {
Observable.range(1,100)
.takeWhile(i -> i < 5)
.subscribe(i -> System.out.println("RECEIVED: " + i));
}
}
The output of the preceding code snippet is as follows:
RECEIVED: 1
RECEIVED: 2
RECEIVED: 3
RECEIVED: 4
Just like the takeWhile() function, there is a skipWhile() function. It will keep skipping emissions while they qualify with a condition. The moment that condition no longer qualifies, the emissions will start going through. In the following code, we skip emissions as long as they are less than or equal to 95. The moment an emission is encountered that does not meet this condition, it will allow all subsequent emissions going forward:
import io.reactivex.Observable;
public class Launcher {
public static void main(String[] args) {
Observable.range(1,100)
.skipWhile(i -> i <= 95)
.subscribe(i -> System.out.println("RECEIVED: " + i));
}
}
The output of the preceding code snippet is as follows:
RECEIVED: 96
RECEIVED: 97
RECEIVED: 98
RECEIVED: 99
RECEIVED: 100
- Rake Task Management Essentials
- C語言程序設計基礎與實驗指導
- JavaScript Unlocked
- Python 3網絡爬蟲實戰
- Java虛擬機字節碼:從入門到實戰
- 信息安全技術
- JavaScript 程序設計案例教程
- “笨辦法”學C語言
- Learning YARN
- C語言程序設計
- 人人都能開發RPA機器人:UiPath從入門到實戰
- Learning Unreal Engine Game Development
- MySQL數據庫應用技術及實戰
- Jenkins 2.x Continuous Integration Cookbook(Third Edition)
- JavaScript Security