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

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.

主站蜘蛛池模板: 通城县| 饶河县| 百色市| 会宁县| 荆州市| 老河口市| 康乐县| 门头沟区| 太和县| 建德市| 田东县| 河南省| 邢台县| 如东县| 赫章县| 苏尼特左旗| 专栏| 通道| 嫩江县| 蕲春县| 武清区| 新绛县| 京山县| 枣阳市| 名山县| 河北省| 湾仔区| 临漳县| 通化市| 济阳县| 白沙| 望都县| 商南县| 洱源县| 哈密市| 瓮安县| 牟定县| 武冈市| 马尔康县| 平塘县| 桐庐县|