官术网_书友最值得收藏!

  • 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.

主站蜘蛛池模板: 雷波县| 馆陶县| 新闻| 尉犁县| 准格尔旗| 沾益县| 西青区| 河津市| 阿城市| 镇江市| 邵东县| 阳东县| 大埔县| 湟源县| 陇川县| 射洪县| 增城市| 呼伦贝尔市| 当阳市| 广河县| 奇台县| 广元市| 镇原县| 连平县| 定襄县| 门头沟区| 炉霍县| 西藏| 衡阳市| 华池县| 山东| 镇平县| 怀化市| 隆尧县| 云浮市| 岳普湖县| 武夷山市| 布尔津县| 武穴市| 石屏县| 固安县|