he is coding

Rxjava之doOnNext操作符

| Comments

doOnNext 作用是 在「被订阅者」发射出一个事件/数据后,在下游第一时间获取发出的事件/数据

e.g.

Flowable<Integer> intFlowable = Flowable.create((FlowableOnSubscribe<Integer>) e -> {
            e.onNext(666);//发射一个“666”
            e.onComplete();
        }, BackpressureStrategy.LATEST)

intFlowable
            .doOnNext(integer -> 
            {
                //上面的“e.onNext(666);”执行后,立刻回调这个方法
                log("on next value = " + integer);
            })
            .doAfterNext(integer -> 

                log("after next value = " + integer)
            )
            .subscribe(integer -> {
                log("subscriber value = " + integer);
            });

这里最后打出来的log顺序是

on next value = 666
subscriber value = 666
after next value = 666

说明在最下游的订阅者接收到这个666之前,doOnNext已经先收到了

上面还有一个doAfterNext操作符,在订阅者接收到这个666之后,他才收到这个值。。。

Comments