rxJava中 Subscriber 与Observer

简介: rxJava中 Subscriber 与Observer

rxJava中 Subscriber 与Observer

Subscriber 与Observer 两者关系


1、 Subscriber是Observer接口的一个抽象实现;

2、subscribe这种订阅方式在第二次请求数据时就不会执行了;

3、Observer 订阅方式可以无限次数执行;

4、subscribe 订阅方式在onCompleted后自动取消了订阅 ;

5、Observer 订阅方式没有自动取消订阅,不能取消订阅;

subscribe(new Subscriber< T>() {})方式实现订阅,也可以达到无限次数的订阅
private void toSubscribe(Observable<Response<D>> observable) {
        observable.subscribeOn(Schedulers.io())
                .map(new Func1<Response<D>,D>() {
                    @Override
                    public D call(Response<D> response) {
                        if(response == null){
                            throw new ApiException(100);
                        }
                        totalPage = response.total;
                        return response.result;
                    }
                })
                .observeOn(AndroidSchedulers.mainThread())
                //重点在这
                .subscribe(new Subscriber<D>() {
                    @Override
                    public void onCompleted() {
                        executeOnLoadFinish();
                    }
                    @Override
                    public void onError(Throwable e) {
                        TLog.error("onError " + e.toString());
                        executeOnLoadDataError(null);
                    }
                    @Override
                    public void onNext(D d) {
                        TLog.log("onNext " );
                        List<T> list = d;
                        TLog.log("entity " + list.size());
                        executeOnLoadDataSuccess(list);
                        TLog.log("onSuccess totalPage " + totalPage);
                    }
                });
    }


目录
相关文章
|
设计模式 Java
Java设计模式-观察者模式(Observer)
Java设计模式-观察者模式(Observer)
|
开发者
观察者(observer)
观察者(observer)
163 0
观察者(observer)
|
存储
ROS学习-写一个简单的Publisher和Subscriber
ROS学习-写一个简单的Publisher和Subscriber
198 0
ROS学习-写一个简单的Publisher和Subscriber
|
JavaScript 前端开发 定位技术
Observable学习笔记
Observable学习笔记
214 0
Observable学习笔记
|
JavaScript 前端开发 调度
你会用RxJS吗?【初识 RxJS中的Observable和Observer】
概念 RxJS是一个库,可以使用可观察队列来编写异步和基于事件的程序的库。 RxJS 中管理和解决异步事件的几个关键点: Observable: 表示未来值或事件的可调用集合的概念。 Observer: 是一个回调集合,它知道如何监听 Observable 传递的值。 Subscription: 表示一个 Observable 的执行,主要用于取消执行。 Operators:** 是纯函数,可以使用函数式编程风格来处理具有map、filter、concat、reduce等操作的集合。
162 0
|
存储 设计模式 Java
浅谈JAVA设计模式之——观察者模式(Observer)
定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。
193 0
浅谈JAVA设计模式之——观察者模式(Observer)
|
存储 搜索推荐 开发工具
Rxjava源码解析笔记 | 创建Observable 与 Observer/Subscriber 以及之间订阅实现的源码分析
一篇关于Rxjava源码解析笔记,内容主要是 创建Observable 与 Observer/Subscriber 以及之间订阅实现的源码分析
观察者模式(Observer )
对象间的联动——观察者模式(一)对象间的联动——观察者模式(二)对象间的联动——观察者模式(三)对象间的联动——观察者模式(四)对象间的联动——观察者模式(五)对象间的联动——观察者模式(五)
784 0
|
Java Android开发 数据库