RxSwift笔记(4) - 观察者

观察者是用来监听事件,然后它需要这个事件做出响应。例如:弹出提示框就是观察者,它对点击按钮这个事件做出响应。
创建观察者最直接的方法就是在 Observable 的 subscribe 方法后面描述,事件发生时,需要如何做出响应。而观察者就是由后面的 onNext,onError,onCompleted的这些闭包构建出来的。

一、AnyObserver

AnyObserver 可以用来描叙任意一种观察者。
在核心逻辑中就出现过AnyObserver
在Sink.run()中会创建一个AnyObserver


image.png

即使在subscribe()中传递一个AnyObserver,还是会在AnonymousObservableSink.run()中创建一个AnyObserver,去作为闭包A中的参数。




二、Binder

和Observable一样,观察者也存在特征观察者,例如Binder。
Binder主要有两个特征
1、不会处理错误时间,
2、确保绑定都是在给定线程上执行,默认主线程


Binder的初始化方法

由核心逻辑我们知道闭包A之后会调用观察者的on()方法


Binder的on()方法

然后self._binding回调,去看self._bingding的实现,targer和元素作为参数回调给Binder初始化的闭包函数binding。
event为error时的处理
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容