美文网首页
RxJava学习(5):检查

RxJava学习(5):检查

作者: crossroads | 来源:发表于2018-06-07 11:03 被阅读20次

前言

根据Froussios英文版的学习笔记。这里省略示例,也可参考https://mcxiaoke.gitbooks.io/rxdocs/content/operators/ElementAt.html ,有更加详细的示例和图片。

一、all与contains

  1. all:数据全部符合条件,则为true;有一个不符合,则为false;出错,则执行OnError
  2. contains:只要有一个符合要求,则为true。

二、isEmpty与defaultIfEmpty

  1. isEmpty: 没有发射任何数据则为true。
  2. defaultIfEmpty:没有发射任何数据的话,默认发射X,例如defaultIfEmpty(2),则发射

三、elementAt(long index) 与elementAt(long index, T defaultItem)

  1. elementAt(long index): 只发射第N项数据 。例如 1 2 3 4 ,elementAt(2) 就是3 .
  2. elementAt(long index, T defaultItem):如果索引值大于数据项数,它会发射一个默认值(通过额外的参数指定),而不是抛出异常.例如 1 2 3 4 ,elementAt(4,5) 就是5

四、sequenceEqual

判定两个Observables是否发射相同的数据序列 。例如A发送1 2 3 ,B发送1 2 3 ,返回true, 若B发送1 2 4 ,返回false。

Observable<Integer> values = Observable.create(o -> {
    o.onNext(1);
    o.onNext(2);
    o.onError(new Exception());
});

Observable.sequenceEqual(values, values)
    .subscribe(
        v -> System.out.println(v),
        e -> System.out.println("Error: " + e),
        () -> System.out.println("Completed")
    );

// 输出 Error: java.lang.Exception

相关文章

网友评论

      本文标题:RxJava学习(5):检查

      本文链接:https://www.haomeiwen.com/subject/fxzsaxtx.html