juejin.cn/post/714574… juejin.cn/post/684490… RxSwift的标准流程核心就是 Observable的构建 和 Observer的订阅,这是响应式编程的基础模式。具体流程可分为以下步骤:
- Observable的构建 通过工厂方法(如create、just、from等)创建数据序列,定义事件发射逻辑: swift Copy Code let observable = Observable.create { observer in observer.onNext("事件1") // 发射数据 observer.onCompleted() // 终止序列 return Disposables.create() } 关键点:onNext、onError、onCompleted 定义事件流。
- Observer的订阅 通过subscribe方法监听Observable的事件: swift Copy Code observable.subscribe( onNext: { value in print("收到: (value)") }, onError: { error in print("错误: (error)") }, onCompleted: { print("序列结束") } ).disposed(by: disposeBag) 关键点:订阅后形成观察链,事件按顺序传递。
- 完整流程示例 swift Copy Code // 1. 创建Observable let sequence = Observable.of(1, 2, 3)
// 2. 订阅Observer sequence.subscribe { event in switch event { case .next(let value): print(value) case .error(let error): print(error) case .completed: print("完成") } }.disposed(by: disposeBag) 输出结果: text Copy Code 1 2 3 完成 4. 核心关系图 text Copy Code Observable (被观察者) -- 发射事件 --> Observer (观察者) ↑ ↓ 创建序列 订阅并处理事件 这一模式实现了数据流的声明式管理和异步事件的响应式处理。
常见
button.rx.tap.asObservable() .subscribe(onNext: { showAlert() }) .disposed(by: disposeBag) 等价于: // 按钮点击序列 let taps: Observable = button.rx.tap.asObservable()
// 每次点击后弹出提示框 taps.subscribe(onNext: { showAlert() }) 核心区别是taps可以传递出去在每个需要订阅的地方做对应的逻辑