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

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.

主站蜘蛛池模板: 泰宁县| 嘉定区| 旬邑县| 二手房| 南通市| 鹤壁市| 青铜峡市| 潞城市| 禄劝| 涞源县| 周至县| 喜德县| 太康县| 丰镇市| 鹤峰县| 军事| 札达县| 咸宁市| 宁强县| 永新县| 景洪市| 胶州市| 天峻县| 临泉县| 象山县| 钟山县| 深圳市| 崇州市| 兖州市| 安福县| 库尔勒市| 和田市| 凤冈县| 株洲县| 曲沃县| 衡山县| 阿尔山市| 清涧县| 长子县| 越西县| 景谷|