当前位置: 首页 > news >正文

RxSwift 学习笔记第三篇之RxSwift的Observer

目录

前言

一、观察者(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 in
    print(event)
}

        控制台输出日志如下:

next(Hello, RxSwift!)
completed

        分析:

        订阅后 Observable 开始执行

        订阅者 subscribe 收到 next 事件,然后 completed

二、观察者的实现方式

        RxSwift提供了三种方式订阅数据流:

1. 直接订阅

        最常见的方式是通过 subscribe 方

相关文章:

  • WIN11开发环境变量记录
  • pyjail逃逸姿势
  • 计算机四级 - 数据库原理 - 第3章 「关系数据库系统概述」
  • React(二):JSX语法解析+综合案例
  • Java 大视界 -- Java 大数据在智慧交通自动驾驶仿真与测试数据处理中的应用(136)
  • 一次Linux下 .net 调试经历
  • 游戏成瘾与学习动力激发策略研究——了解“情感解离”“创伤理论”
  • 电磁兼容|RC电路
  • C或C++中实现数据结构课程中的链表、数组、树和图
  • count(1),count(列名),count(*)详解!
  • 系统思考全球化落地
  • 【DeepSeek应用】本地部署deepseek模型后,如何在vscode中调用该模型进行代码撰写,检视和优化?
  • Unity--GPT-SoVITS接入、处理GPTAPI的SSE响应流
  • 操作系统——进程优先级切换调度与调度算法
  • 【从零开始学习计算机科学】设计模式(二)工厂模式、抽象工厂模式、单例模式、建造者模型、原型模式
  • 一级运动员最小几岁·棒球1号位
  • ThinkPad T480s更换开机BIOS图片的详细步骤
  • KNN算法原理及python代码实现
  • PyTorch 实现 Conditional DCGAN(条件深度卷积生成对抗网络)进行图像到图像转换的示例代码
  • RabbitMQ可靠性进制
  • 中国农业国际交流协会会长王守聪失联已逾半年,协会启动罢免
  • 当初没有珍惜巴特勒的热火,被横扫出局后才追悔莫及
  • 新一届中国女排亮相,奥运冠军龚翔宇担任队长
  • 找化学的答案,解人类的命题:巴斯夫的“变革者”成长之道
  • 黄仁勋访华期间表示希望继续与中国合作,贸促会回应
  • 《奇袭白虎团》原型人物之一赵顺合辞世,享年95岁