美文网首页
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