美文网首页RxJava
RxJava<第三篇>:do操作符

RxJava<第三篇>:do操作符

作者: NoBugException | 来源:发表于2019-03-12 17:40 被阅读7次

基本代码如下:

    Observable.create(new ObservableOnSubscribe<String>() {
        @Override
        public void subscribe(ObservableEmitter<String> emitter) {
            emitter.onNext("hello word A");
            emitter.onNext("hello word B");
            emitter.onNext("hello word C");
            //emitter.onError(new Throwable("this is nullpointException"));
            emitter.onComplete();
        }
    }).doOnSubscribe(new Consumer<Disposable>() {
        @Override
        public void accept(Disposable disposable) throws Exception {
            System.out.println("doOnSubscribe -- 观察者和被观察者连接时被调用");
        }
    }).doOnNext(new Consumer<String>() {
        @Override
        public void accept(String s) throws Exception {
            System.out.println("doOnNext -- "+s);
        }
    }).doAfterNext(new Consumer<String>() {
        @Override
        public void accept(String s) throws Exception {
            System.out.println("doAfterNext -- "+s);
        }
    }).doOnDispose(new Action() {
        @Override
        public void run() throws Exception {
            System.out.println("doOnDispose -- ");
        }
    }).doAfterTerminate(new Action() {
        @Override
        public void run() throws Exception {
            System.out.println("doAfterTerminate -- ");
        }
    }).doFinally(new Action() {
        @Override
        public void run() throws Exception {
            System.out.println("doFinally -- ");
        }
    }).doOnComplete(new Action() {
        @Override
        public void run() throws Exception {
            System.out.println("doOnComplete -- ");
        }
    }).doOnError(new Consumer<Throwable>() {
        @Override
        public void accept(Throwable throwable) throws Exception {
            System.out.println("doOnError -- ");
        }
    }).doOnLifecycle(new Consumer<Disposable>() {
        @Override
        public void accept(Disposable disposable) throws Exception {
            System.out.println("doOnLifecycle1 -- ");
        }
    }, new Action() {
        @Override
        public void run() throws Exception {
            System.out.println("doOnLifecycle2 -- ");
        }
    }).doOnEach(new Consumer<Notification<String>>() {
        @Override
        public void accept(Notification<String> stringNotification) throws Exception {
            System.out.println("doOnEach -- "+stringNotification.getValue());
        }
    }).subscribe();

执行效果如下:

图片.png

基本说明

(1)doOnSubscribe:在被观察者和观察者产生关联的时候被调用,disposable可以立即取消订阅;
(2)doOnLifecycle:可以在订阅之后设置是否取消订阅;
(3)doNext和doAfterNext:可以接收到被观察者发射过来的数据;
(4)doOnEach:当onNext、onError、onComplete被触发是被调用;
(5)doOnComplete:当触发onComplete时被调用;
(6)doOnError:当触发onError时被调用;
(7)doFinally:当触发onError或onComplete时被调用;
(8)doOnDispose:当取消订阅时被调用;
(9)doAfterTerminate:订阅终止时被调用;

相关文章

  • RxJava<第三篇>:do操作符

    基本代码如下: 执行效果如下: 基本说明 (1)doOnSubscribe:在被观察者和观察者产生关联的时候被调用...

  • MongoDB 条件操作符

    MongoDB中条件操作符有: (>) 大于 - $gt (<) 小于 - $lt (>=) 大于等于 - $gt...

  • shell-判断

    文件测试-操作符:-gt 大于 | -lt 小于 | -eq 等于 | -ne 不等于 | ...

  • MongoDB 条件操作符

    1.比较操作符: 基本语法对象的键值对为:{key:num}而使用条件操作符则为:{key:{$gt:num}} ...

  • MongoDB query notes

    基础 无条件查询: (多)条件查询 条件操作符 $lt $lte $gt $gte $ne $in 包含 $...

  • RxJava<第十一篇>:变换操作符

    (1)map 从发射数据到接收数据之间的数据变换。 以上代码的意思是,发射的数据是Integer类型的, 将Int...

  • RxJava<第九篇>:创建操作符

    (1)create 用来创建被观察者, 5种被观察者都可以使用create操作符创建。 (2)just 只有四种被...

  • MongoDB 常用操作符

    MongoDB 常用操作符 官方文档 比较运算符 $eq: (equal)等于 $gt:(greater than...

  • MongoDB学习 (六):查询

    目录 查询操作 集合查询方法 find() 查询内嵌文档 查询操作符(内含 数组查询) "$gt" 、"$gte"...

  • RxJava<第十五篇>:组合/合并操作符

    (1)concat和concatArray 组合多个被观察者一起发送数据,合并后 按发送顺序串行执行 以上两种方式...

网友评论

    本文标题:RxJava<第三篇>:do操作符

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