- 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.
推薦閱讀
- Visual C++程序設計教程
- JIRA 7 Administration Cookbook(Second Edition)
- C語言程序設計基礎與實驗指導
- Learning ASP.NET Core 2.0
- Getting Started with SQL Server 2012 Cube Development
- Mastering AndEngine Game Development
- Go語言精進之路:從新手到高手的編程思想、方法和技巧(1)
- Learning PHP 7
- Kotlin進階實戰
- Python Machine Learning Cookbook
- C# 7.1 and .NET Core 2.0:Modern Cross-Platform Development(Third Edition)
- Shopify Application Development
- Python數據可視化之matplotlib實踐
- Python程序設計現代方法
- Isomorphic JavaScript Web Development