[RxJava学习]操作符Map源码分析
2016-08-16 21:37
429 查看
重点参考文章:RxJava基本流程和lift源码分析
1.首先创建初始的Observable、Subscriber对象;操作符map的入参是Func1类型的,我们创建一个Func1类型的对象:
2.代码的主体就是:
3.涉及的操作符的实现:
4.我们将代码主体逐句拆解开,看一下逻辑流:
5.代码执行的顺序是从Observable.subscribe()触发的,执行流如下图:
5.分析执行结果:
我们的代码主体是:
实际的执行逻辑是:
5.1 初始的observable1中的subscriber指的并不是subscriber1,而是map操作符创建的临时subscriber2;
5.2 map操作临时创建了一个Observable和Subscriber对象;它作为链条上游(observable1)的订阅者Subscriber,作为链条下游(subscriber1)的被/可观察对象Observable;
最近又看到了一篇写Map原理的文章,写得挺不错。推荐下:RxJava进阶之源码分析map() 操作符分析
1.首先创建初始的Observable、Subscriber对象;操作符map的入参是Func1类型的,我们创建一个Func1类型的对象:
2.代码的主体就是:
Observable.create(onSubscribe1) .map(transformer1); .subscribe(subscriber1);
3.涉及的操作符的实现:
4.我们将代码主体逐句拆解开,看一下逻辑流:
5.代码执行的顺序是从Observable.subscribe()触发的,执行流如下图:
5.分析执行结果:
我们的代码主体是:
Observable.create(onSubscribe1) .map(transformer1); .subscribe(subscriber1);
实际的执行逻辑是:
subscriber1.onStart(); subscriber2.onStart(); R result = transformer1.call("1"); subscriber1.onNext(result); subscriber1.onCompleted();
5.1 初始的observable1中的subscriber指的并不是subscriber1,而是map操作符创建的临时subscriber2;
5.2 map操作临时创建了一个Observable和Subscriber对象;它作为链条上游(observable1)的订阅者Subscriber,作为链条下游(subscriber1)的被/可观察对象Observable;
最近又看到了一篇写Map原理的文章,写得挺不错。推荐下:RxJava进阶之源码分析map() 操作符分析
相关文章推荐
- [RxJava学习]操作符flatMap源码分析
- RxJava进阶之源码分析map() 操作符分析
- RxJava(一) create操作符的用法和源码分析
- java util包学习(8)Map源码分析
- [RxJava学习]subscribeOn源码分析
- RxJava2.0中map操作符用法和源码分析(四)
- RxJava1.0 flatMap方法的源码分析
- Android RxJava(一) create操作符的用法和源码分析
- RxJava的学习之变换操作符—map
- Hadoop-2.4.1学习之Map任务源码分析(上)
- Rxjava操作符源码分析
- RxJava2_map操作符源码解析
- RxJava2.0中flatMap操作符用法和源码分析(五)
- RxJava 源码解读分析 map
- Rxjava_自己实现Rxjava map转换及源码分析
- 对Rxjava1.0的map方法的源码分析
- Hadoop-2.4.1学习之Map任务源码分析(下)
- RxJava2.0中just操作符用法和源码分析(二)
- WinCE6.0学习之EBoot源码分析----startup.s(五)
- DEDE源码分析与学习---index.php文件解读。