目录
前言
一、观察者(Observer)是什么
二、观察者的实现方式
1. 直接订阅
2.分开处理
3.UI绑定
4.取消订阅(Dispose)
1.手动调用dispose()
2.使用DisposeBag自动管理
5.subscribe() 和 bind(to:) 的区别
6.总结
1.subscribe方式:
2.推荐的订阅写法
前言
RxSwift 的设计基于 观察者模式(Observer Pattern) 和 订阅者模式(Subscriber Pattern),但是更准确的说法应该是 响应式编程 模式,这两种模式是响应式编程的核心思想。
在 RxSwift 中,没有显式的“订阅者”这一概念。通常情况下,订阅者(Subscriber)是 Rx 编程中的一个通用术语,用于表示接收和处理数据流的实体。但在 RxSwift 中,实际的术语是观察者(Observer)。
在 RxSwift 中,观察者(Subscriber) 负责接收 Observable(可观察对象) 发送的数据流并对其进行处理。
没有订阅者时,Observable 不会被触发(Hot Observable 除外)。
一、观察者(Observer)是什么
观察者是RxSwift 中用于接收数据流事件并进行处理的对象。通常情况下,我们通过 Observable创建数据流,并使用 subscribe() 方法来让观察者订阅这个数据流。一旦数据流中有新的事件产生,观察者就会收到通知,并对数据进行处理。
let observable = Observable.just("Hello, RxSwift!")observable.subscribe { event inprint(event)
}
控制台输出日志如下:
next(Hello, RxSwift!)
completed
分析:
订阅后 Observable 开始执行
订阅者 subscribe 收到 next 事件,然后 completed
二、观察者的实现方式
RxSwift提供了三种方式订阅数据流:
1. 直接订阅
最常见的方式是通过 subscribe 方