Rxjava2系列:使用简化的Observer:Consumer

Posted zhangjin1120

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Rxjava2系列:使用简化的Observer:Consumer相关的知识,希望对你有一定的参考价值。

上篇文章:RxJava2系列:rxjava2简单使用 中使用了Observer接口,Observer接口有4个方法。如果只想用onNext方法,另外3个方法:onSubscribe,onError,onComplete不想用的话,可以使用另外一个接口:Consumer。

从下图可以看出,subscribe方法在只传递一个Consumer类型的参数时,就是消费onNext方法。

示例代码:

import io.reactivex.Observable;
import io.reactivex.ObservableEmitter;
import io.reactivex.ObservableOnSubscribe;
import io.reactivex.functions.Consumer;


public class ConsumerTest 
    public static void main(String[] args) 
        Observable<Integer> observable = Observable.create(
                new ObservableOnSubscribe<Integer>() 
                    @Override
                    public void subscribe(ObservableEmitter<Integer> e) throws Exception 
                        e.onNext(1);
                        e.onNext(2);
                        e.onNext(3);
                        e.onComplete();
                    
                );
        Consumer<Integer> consumer = new Consumer<Integer>() 
            @Override
            public void accept(Integer i) throws Exception 
                System.out.println("accept: " + i);
            
        ;
        observable.subscribe(consumer);
    

执行结果:

accept: 1
accept: 2
accept: 3

以上是关于Rxjava2系列:使用简化的Observer:Consumer的主要内容,如果未能解决你的问题,请参考以下文章

RxJava用法

RxJava2 中多种取消订阅 dispose 的方法梳理( 源码分析 )

Rxjava系列 RxJava2.0背压原理解析

rxjs系列 -- Observale与Observer

vue系列---响应式原理实现及Observer源码解析

Android Data Binding 系列 -- Binding与Observer实现原理