- Learning RxJava
- Thomas Nield
- 205字
- 2021-07-02 22:22:53
Observable.empty()
Although this may not seem useful yet, it is sometimes helpful to create an Observable that emits nothing and calls onComplete():
import io.reactivex.Observable;
public class Launcher {
public static void main(String[] args) {
Observable<String> empty = Observable.empty();
empty.subscribe(System.out::println,
Throwable::printStackTrace,
() -> System.out.println("Done!"));
}
}
The output is as follows:
Done!
Note that no emissions were printed because there were none. It went straight to calling onComplete , which printed the Done! message in the Observer. Empty observables are common to represent empty datasets. They can also result from operators such as filter() when all emissions fail to meet a condition. Sometimes, you will deliberately create empty Observables using Observable.empty(), and we will see examples of this in a few places throughout this book.
An empty Observable is essentially RxJava's concept of null. It is the absence of a value (or technically, "values"). Empty Observables are much more elegant than nulls because operations will simply continue empty rather than throw NullPointerExceptions. But when things go wrong in RxJava programs, sometimes it is because observers are receiving no emissions. When this happens, you have to trace through your Observable's chain of operators to find which one caused emissions to become empty.
- Beginning Java Data Structures and Algorithms
- Game Programming Using Qt Beginner's Guide
- Rust編程:入門、實戰與進階
- Power Up Your PowToon Studio Project
- Building a Home Security System with Raspberry Pi
- Java項目實戰精編
- 名師講壇:Spring實戰開發(Redis+SpringDataJPA+SpringMVC+SpringSecurity)
- Java Web開發就該這樣學
- 精通MySQL 8(視頻教學版)
- Java Web開發實例大全(基礎卷) (軟件工程師開發大系)
- Machine Learning for OpenCV
- Arduino機器人系統設計及開發
- 交互設計師成長手冊:從零開始學交互
- Java程序設計入門(第2版)
- Selenium WebDriver自動化測試完全指南