RxSwift 的核心内容:
- Observable - 产生事件
- Observer - 响应事件
- Operator - 创建变化组合事件
- Disposable - 管理绑定(订阅)的生命周期
- Schedulers - 线程队列调配
1. 创建序列 Observerable
//1.创建序列
//保存闭包
let ob = Observable<Int>.create { (observer) -> Disposable in
return Disposables.create()
}
create 创建AnonymousObservable类,保存创建序列时的闭包代码块,源码如下:
2.订阅信号
//2.订阅信号
ob.subscribe(onNext: { (value) in
print("订阅到:\(value)")
}).disposed(by: disposebag)
创建订阅者AnonymousObserver,初始化时保存订阅的闭包
创建AnonymousObservableSink-->sink.run -->AnonymousObservable._subscribeHandler 执行create时的闭包代码,即发送信号
3.发送信号
let ob = Observable<Int>.create { (observer) -> Disposable in
//3.发送信号
observer.onNext(5)
observer.onCompleted()
// observer.onError(NSError(domain: "err", code: 1001, userInfo: nil))
return Disposables.create()
}
AnonymousObserver.onNext --> ObserverBase.on --> AnonymousObserver.onCore -->执行订阅序列
未完待续。。。。。