- 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.
推薦閱讀
- 極簡算法史:從數學到機器的故事
- LaTeX Cookbook
- FreeSWITCH 1.6 Cookbook
- WordPress Plugin Development Cookbook(Second Edition)
- SQL Server 2016數據庫應用與開發習題解答與上機指導
- QGIS:Becoming a GIS Power User
- Swift細致入門與最佳實踐
- Learning Laravel's Eloquent
- Scala for Machine Learning(Second Edition)
- 從0到1:HTML5 Canvas動畫開發
- Hadoop大數據分析技術
- Mastering Object:Oriented Python(Second Edition)
- C語言程序設計
- Implementing NetScaler VPX?(Second Edition)
- Neo4j High Performance