RXSwift笔记

RXSwift

  • Observable - 可监听序列

可以发出多个元素,遇completed或error事件停止

Single

它要么只能发出一个元素,要么产生一个 error 事件

Completable

它要么只能产生一个 completed 事件,要么产生一个 error 事

Maybe

它介于 SingleCompletable 之间,它要么只能发出一个元素,要么产生一个 completed 事件,要么产生一个 error 事件。

Driver

不会产生 error 事件,一定在 MainScheduler 监听(主线程监听),共享附加作用

Signal

SignalDriver 相似,唯一的区别是,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 在哪个 线程 发出通知。

 

posted @ 2021-11-25 18:33  HEJJY  阅读(104)  评论(0编辑  收藏  举报