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

  • Learning RxJava
  • Thomas Nield
  • 125字
  • 2021-07-02 22:22:58

defaultIfEmpty()

If we want to resort to a single emission if a given Observable comes out empty, we can use defaultIfEmpty(). For a given Observable<T>, we can specify a default T emission if no emissions occur when onComplete() is called.

If we have an Observable<String> and filter for items that start with Z but no items meet this criteria, we can resort to emitting None:

import io.reactivex.Observable;

public class Launcher {
public static void main(String[] args) {

Observable<String> items =
Observable.just("Alpha","Beta","Gamma","Delta","Epsilon");

items.filter(s -> s.startsWith("Z"))
.defaultIfEmpty("None")
.subscribe(System.out::println);
}
}

The output of the preceding code snippet is as follows:

None

Of course, if emissions were to occur, we would never see None emitted. It will only happen if the preceding Observable is empty.

主站蜘蛛池模板: 庄浪县| 罗定市| 南涧| 大连市| 涞源县| 五寨县| 巴马| 丁青县| 保靖县| 杭州市| 大埔区| 新兴县| 太仆寺旗| 永寿县| 南部县| 和硕县| 射洪县| 皮山县| 南丰县| 皮山县| 霍林郭勒市| 滦南县| 登封市| 临城县| 揭西县| 克什克腾旗| 东明县| 永靖县| 东宁县| 准格尔旗| 绥阳县| 青龙| 多伦县| 五寨县| 林口县| 铁力市| 集安市| 阿拉善右旗| 竹溪县| 昌乐县| 天镇县|