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);
                    }
                });
    }


目录
相关文章
RxSwift观察者AnyObserver、Binder的使用
RxSwift观察者AnyObserver、Binder的使用
138 0
|
存储 JavaScript 前端开发
RxJS系列02:可观察者 Observables
RxJS系列02:可观察者 Observables
112 0
|
开发者
观察者(observer)
观察者(observer)
142 0
观察者(observer)
|
JavaScript 前端开发 定位技术
Observable学习笔记
Observable学习笔记
191 0
Observable学习笔记
|
前端开发 JavaScript API
Rxjs源码解析(一)Observable
学习一个库最好的方法就是看其源码,理解其 api 的调用原理,用起来自然也就很清楚自己到底在干什么了,秉持着此观念,为了更好地理解 rxjs,抽空将其源码看了一遍 本文章不会刻意涉及概念性的东西,主线就是解读源码,并在恰当的时候给出一些小例子,源码基于 rxjs v7.4.0 版本
338 0
|
存储 搜索推荐 开发工具
Rxjava源码解析笔记 | 创建Observable 与 Observer/Subscriber 以及之间订阅实现的源码分析
一篇关于Rxjava源码解析笔记,内容主要是 创建Observable 与 Observer/Subscriber 以及之间订阅实现的源码分析
|
前端开发 JavaScript NoSQL
5. 创建 Observable
第一个示例 注册事件监听器的常规写法。 var button = document.querySelector('button'); button.addEventListener('click', () => console.
986 0
观察者模式(Observer )
对象间的联动——观察者模式(一)对象间的联动——观察者模式(二)对象间的联动——观察者模式(三)对象间的联动——观察者模式(四)对象间的联动——观察者模式(五)对象间的联动——观察者模式(五)
770 0
|
Java Android开发 数据库