操作符之条件 / 布尔操作符

     1、作用

  • 通过设置函数,判断被观察者(Observable)发送的事件是否符合条件

     2、类型

     3、详解

          3.1   all()----- 见rxdocs.pdf第192页

     作用:判断发送的每项数据是否都满足 设置的函数条件

    public static void all() {
        Observable.just(1, 2, 3, 4, 5, 10)
                .all(new Predicate<Integer>() {
                    @Override
                    public boolean test(Integer integer) throws Exception {
                        return integer >= 10;
                    }
                })
                .subscribe(new SingleObserver<Boolean>() {
                    @Override
                    public void onSubscribe(Disposable d) {
                        Log.d(TAG, "onSubscribe");
                    }

                    @Override
                    public void onSuccess(Boolean value) {
                        Log.d(TAG, "onSuccess: value = " + value);
                    }

                    @Override
                    public void onError(Throwable e) {
                        Log.d(TAG, "onError: " + e.toString());
                    }
                });
    }

      输出:

08-09 19:56:20.782  4775  4775 D Operation: onSubscribe
08-09 19:56:20.782  4775  4775 D Operation: onSuccess: value = false

          3.2   takeWhile()----- 见rxdocs.pdf第201页

     作用:发射Observable发射的数据,直到一个指定的条件不成立

    public static void takeWhile() {
        Observable.just(1, 2, 3, 4, 5, 10)
                .takeWhile(new Predicate<Integer>() {
                    @Override
                    public boolean test(Integer integer) throws Exception {
                        return integer < 4;
                    }
                })
                .subscribe(new Observer<Integer>() {
                    @Override
                    public void onSubscribe(Disposable d) {
                        Log.d(TAG, "onSubscribe");
                    }

                    @Override
                    public void onNext(Integer value) {
                        Log.d(TAG, "onNext: value = " + value);
                    }

                    @Override
                    public void onError(Throwable e) {
                        Log.d(TAG, "onError: " + e.toString());
                    }

                    @Override
                    public void onComplete() {
                        Log.d(TAG, "onComplete");
                    }
                });
    }

          输出:

08-09 20:02:26.093  5131  5131 D Operation: onSubscribe
08-09 20:02:26.093  5131  5131 D Operation: onNext: value = 1
08-09 20:02:26.093  5131  5131 D Operation: onNext: value = 2
08-09 20:02:26.093  5131  5131 D Operation: onNext: value = 3
08-09 20:02:26.093  5131  5131 D Operation: onComplete

 

猜你喜欢

转载自www.cnblogs.com/andy-loong/p/11329331.html