RxSwift笔记(4) - 观察者

2021-01-11  本文已影响0人  左腿丶

观察者是用来监听事件,然后它需要这个事件做出响应。例如:弹出提示框就是观察者,它对点击按钮这个事件做出响应。
创建观察者最直接的方法就是在 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时的处理
上一篇 下一篇

猜你喜欢

热点阅读