- Learning RxJava
- Thomas Nield
- 221字
- 2021-07-02 22:22:53
Observable.range()
To emit a consecutive range of integers, you can use Observable.range(). This will emit each number from a start value and increment each emission until the specified count is reached. These numbers are all passed through the onNext() event, followed by the onComplete() event:
import io.reactivex.Observable;
public class Launcher {
public static void main(String[] args) {
Observable.range(1,10)
.subscribe(s -> System.out.println("RECEIVED: " + s));
}
}
The output is as follows:
RECEIVED: 1
RECEIVED: 2
RECEIVED: 3
RECEIVED: 4
RECEIVED: 5
RECEIVED: 6
RECEIVED: 7
RECEIVED: 8
RECEIVED: 9
RECEIVED: 10
Note closely that the two arguments for Observable.range() are not lower/upper bounds. The first argument is the starting value. The second argument is the total count of emissions, which will include both the initial value and incremented values. Try emitting Observable.range(5,10), and you will notice that it emits 5 followed by the next nine consecutive integers following it (for a grand total of 10 emissions):
import io.reactivex.Observable;
public class Launcher {
public static void main(String[] args) {
Observable.range(5,10)
.subscribe(s -> System.out.println("RECEIVED: " + s));
}
}
The output is as follows:
RECEIVED: 5
RECEIVED: 6
RECEIVED: 7
RECEIVED: 8
RECEIVED: 9
RECEIVED: 10
RECEIVED: 11
RECEIVED: 12
RECEIVED: 13
RECEIVED: 14
Note that there is also a long equivalent called Observable.rangeLong() if you need to emit larger numbers.
推薦閱讀
- Python自然語言處理實戰:核心技術與算法
- Mastering RabbitMQ
- Mastering Yii
- Python機器學習編程與實戰
- Visual Basic程序設計實踐教程
- Protocol-Oriented Programming with Swift
- 低代碼平臺開發實踐:基于React
- 深度學習原理與PyTorch實戰(第2版)
- 從0到1:HTML5 Canvas動畫開發
- 深度學習程序設計實戰
- C#面向對象程序設計(第2版)
- Keil Cx51 V7.0單片機高級語言編程與μVision2應用實踐
- JavaScript語法簡明手冊
- JavaScript設計模式與開發實踐
- Mastering Magento Theme Design