RxSwift自学过程
in 知识 on Swift
- 简单参数总结
- Transforming Observables
- Filtering Observables (Filtering 过滤的)
- Combination operators (combination 结合,组合。operators 操作者,经营者)
- Error Handing Operators
- Observable Utility Operators (Utility 效用 实用 实用的)
- Conditional and Boolean Operators
简单参数总结
Observable(可观察量;感觉到的事物)
Observable<Element>是一个观察者模式中被观察的对象,相当于一个事件的序列,会向订阅者发送新产生的事件信息。
Sequence(序列;顺序;续发事件)
Sequence把一系列元素转换为事件序列
AnonymousObservable(匿名的可观察)
AnonymousObservable继承自Producer,Producer实现了线程调度功能,可以安排线程来执行run方法,因此AnonymousObservable是可以运行在指定线程中的Observable
Error
Error,顾名思义,是做错误处理的,创建一个不发送任何item的Observable
Deferred(延期的)
deferred会等到有订阅者的时候在通过工厂方法创建Observable对象,每个订阅者订阅的对象都是内容相同而完全独立的序列。
Empty
empty创建一个空的序列。它仅仅发送.Completed消息
Never
never创建一个序列,该序列永远不会发送消息,.Complete消息不会发送
Just
Just代表只包含一个元素的序列。它将向订阅者发送两个消息,第一个消息是其中元素的值,另一个是.Complete
PublishSubject
PublishSubject会发送订阅者从订阅之后的事件序列。
ReplaySubject
ReplaySubject在新的订阅对象订阅的时候会补发所有已经发送过的数据队列,bufferSize是缓存区的大小,决定了补发队列的最大值。如果bufferSize是1,那么新的订阅者出现的时候就会补发上一个事件,如果是2,则补发两个,以此类推。
BehaviorSubject
BehaviorSubject在新的订阅对象订阅的时候会发送最近发送的事件,如果没有则发送一个默认值。
Variable
variable是基于BehaviorSubject的一层封装,它的优势是:不会被显式的终结。即:不会收到.Complete和.Error这类的终结事件,它会主动在析构的时候发送 .Complete
Transforming Observables
Transforming Observables 对序列做一些转换
Map
map就是对每个元素都用函数做一次转换,挨个映射一遍。
FlatMap
flatMap将每个Observable发射的数据变换为Observable的集合,然后将其降维排列成一个Observable
Scan
scan对Observable发射的每一项数据应用一个函数,然后按顺序依次发射一个值。
Filtering Observables (Filtering 过滤的)
Filtering Observables对序列进行过滤。
Filter
filter只会让符合条件的元素通过
DistinctUntilChanged (distinct: 不同的; 明显的; 清楚的;)
distinctUntilChanged会废弃掉连续重复的事件
Take
take只获取序列中的前n个事件,在满足数量之后会自动.Completed
Combination operators (combination 结合,组合。operators 操作者,经营者)
Combination operators是关于序列的运算,可以将多个序列源进行组合,拼装成一个新的事件序列。
StartWith
startWith会在队列开始之前插入一个事件元素
CombineLatest
CombineLatest如果存在两个事件队列,需要同时监听,那么每当有新的事件发生的时候,combinlatest会将每个队列的最新一个元素进行结合。为了能够产生结果,两个序列中都必须保证至少有一个元素。
Zip
zip合并两条队列,不过它会等到两个队列的元素一一对应地凑齐之后再合并。
Merge
merge合并多个Observable的组合成一个,假如只允许一个线程,则只会运行序列的第一个
SwitchLatest
switchLatest 将一个发射多个 Observables的 Observable 转换成另一个单独的 Observable, 后者发射那些 Observables 最近发射的数据项。
Error Handing Operators
Error Handing Operators 对从 Observable 发射的 error 通知做出响应或者从错误中恢复,简称错误处理。
CatchError
·catchError
收到error` 通知之后,转而发送一个没有错误的序列
Retry
retry,如果原始的observable遇到错误,重新订阅。
Observable Utility Operators (Utility 效用 实用 实用的)
Observable Utility Operators辅助工具
Subscribe (订阅 签署)
subscribe有新的事件就会触发。
SubscribeNext SubscribeCompleted SubscribeError
DoOn
doOn注册一个操作来监听事件的声明周期
Conditional and Boolean Operators
Conditional and Boolean Operators条件与布尔操作,可用操作符根据条件发射或变换Observables,或者对他们做布尔运算。