RxSwift-搞事情(二)

RxSwift-搞事情(一)
上次说到RxSwift的核心逻辑,发现有些东西并没想象中简单,这次再来补充一哈。
搞事情(一)我们说到sink初始化保存了observer,最终程序走到了sink.run,也就是管子的run方法,parent._subscribeHandler(AnyObserver(self)),参数self就是AnonymousObservableSink,parent就是AnonymousObservable,然后我们来看AnyObserver(sink)。
AnyObserver
AnyObserver是一个结构体,并继承ObserverType协议,初始化会给自己的属性observer赋值,也就是observer.on,参数observer其实就是传过来的AnonymousObservableSink,所以会到sink.on里面去

image.png
通过event判断走.next .error .completed ,以.next为例,会继续走到forwardOn
image.png
接着会走到forwardOn里面的self._observer.on,而_observer正式初始化sink时传过来的参数,也就是之前的AnonymousObserver也就可以走到它的闭包从而完成回调
image.png

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容