RXSwift笔记
RXSwift
- Observable - 可监听序列
可以发出多个元素,遇completed或error事件停止
Single
它要么只能发出一个元素,要么产生一个 error 事件
Completable
它要么只能产生一个 completed 事件,要么产生一个 error 事
Maybe
它介于 Single 和 Completable 之间,它要么只能发出一个元素,要么产生一个 completed 事件,要么产生一个 error 事件。
Driver
不会产生 error 事件,一定在 MainScheduler 监听(主线程监听),共享附加作用
Signal
Signal 和 Driver 相似,唯一的区别是,Driver 会对新观察者回放(重新发送)上一个元素,而 Signal 不会对新观察者回放上一个元素。
一般情况下状态序列我们会选用 Driver 这个类型,事件序列我们会选用 Signal 这个类型
ControlEvent
专门用于描述 UI 控件所产生的事件
- Observer - 观察者
AnyObserver
可以用来描叙任意一种观察者
Binder
- 即是观察者又是可监听序列
AsyncSubject
产生完成事件后,发出最后一个元素(仅仅只有最后一个元素),如果源 Observable 没有发出任何元素,只有一个完成事件。那 AsyncSubject 也只有一个完成事件
ReplaySubject
PublishSubject
PublishRelay
将对观察者发送订阅后产生的元素,而在订阅前发出的元素将不会发送给观察者
BehaviorSubject
BehaviorRelay
它会将源 Observable 中最新的元素发送出来(如果不存在最新的元素,就发出默认元素)。然后将随后产生的元素发送出来。
ControlProperty
操作符
map
通过一个转换函数,将 Observable 的每个元素转换一遍
flatMap
操作符将源 Observable 的每一个元素应用一个转换方法,将他们转换成 Observables。 然后将这些 Observables 的元素合并之后再发送出来。
flatMapLatest
将 Observable 的元素转换成其他的 Observable,然后取这些 Observables 中最新的一个
merge
将多个 Observables 合并成一个
delay
它会将 Observable 的所有元素都拖延一段设定好的时间, 然后才将它们发送出来。
filter
操作符将通过你提供的判定方法过滤一个 Observable
take(n)
仅仅从 Observable 中发出头 n 个元素
takeLast(n)
仅仅从 Observable 中发出尾部 n 个元素
skip(n)
跳过 Observable 中头 n 个元素
skipWhile
跳过 Observable 中头几个元素,直到元素的判定为否
retry(n)
如果源 Observable 产生一个错误事件,重新对它进行订阅,希望它不会再次产生错误 n次重试
startWith
将一些元素插入到序列的头部
observeOn
来指示 Observable 在哪个 线程 发出通知。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术