https://www.jianshu.com/p/23c38a4ed360 这篇分析不错。
https://www.jianshu.com/p/53b96bf7e201
分析上面这段Rxjava2的代码整个调用链路如下:前面2部分create和map的创建比较简单,主要从subscribe这里开始分析。
有个调用顺序的1到14的来描述整个执行过程中实际的执行过程
下面这个是按照类图中的对象存储指向的类和调用关系一起展示出来的调用顺序。仔细分析可以发现:
1、事件源是:ObservableOnsubscribe
2、map.subscribe 开始后,在ObserableMap中保存的source是ObservableCreate
3、然后ObservableCreate保存的source是事件源对象ObservableOnsubscribe
4、而ObservableCreate中的嵌套内部类CreateEmitter中保存的observer是MapObserver,它是ObservableMap的嵌套内部类
5、而ObservableMap的嵌套内部类MapObserver中保存的downstream是保存的真正的Observer也就是事件监听者
6、并在在MapObserver的OnNext方法中调动Function这个外部的Map方法。
No Leanote account? Sign up now.