RxSwift-搞事情(一)
上次說到RxSwift的核心邏輯陪竿,發(fā)現(xiàn)有些東西并沒想象中簡單,這次再來補充一哈屠橄。
搞事情(一)我們說到sink初始化保存了observer,最終程序走到了sink.run,也就是管子的run方法,parent._subscribeHandler(AnyObserver(self))
,參數(shù)self就是AnonymousObservableSink
,parent
就是AnonymousObservable
,然后我們來看AnyObserver(sink)族跛。
AnyObserver
AnyObserver是一個結(jié)構(gòu)體,并繼承ObserverType協(xié)議
锐墙,初始化會給自己的屬性observer賦值礁哄,也就是observer.on
,參數(shù)observer其實就是傳過來的AnonymousObservableSink
溪北,所以會到sink.on里面去
image.png
image.png
self._observer.on
,而_observer正式初始化sink時傳過來的參數(shù)之拨,也就是之前的AnonymousObserver
也就可以走到它的閉包從而完成回調(diào)image.png