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
,或者对他们做布尔运算。