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

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.

主站蜘蛛池模板: 莱州市| 和田县| 屯昌县| 双鸭山市| 信丰县| 利辛县| 临湘市| 闸北区| 裕民县| 武鸣县| 郎溪县| 社会| 白玉县| 通许县| 湖口县| 阿瓦提县| 湘阴县| 高陵县| 景德镇市| 敦煌市| 安阳县| 阿拉尔市| 金川县| 大宁县| 滨州市| 措美县| 常德市| 铜川市| 闸北区| 宁海县| 博爱县| 叙永县| 江孜县| 和田县| 大姚县| 萨嘎县| 大洼县| 鹿泉市| 浙江省| 齐河县| 渝北区|