Observable
Single
只发出 succed 或者 error事件
Completable
只发出 completed 或者 error事件
Mybe
可以是 succees ==Or== error ==Or== completed
ControlEvent
UI控件事件监听,主线程监听,状态共享
Driver
简化UI层、主线程监听、不会产生error事件、状态共享
Observer
AnyObserver
Binder
Observer Or Observable
AsyncSubject
在事件completed之后发出最后一个元素,如果error就发出error
PublishSubject
在订阅之后才会发出元素、订阅之前的丢失。error 就终止序列发出error
ReplaySubject
无论订阅前后都会发出元素,error产生就error
Varible
ex :let temp:Varible<String?> = Varible(nil)
temp.value = ""
temp.asObservable.map{}
具有swift var的所有功能,如果定义的属性想使用Rx操作符,用此定义。
ControlProperty
Operation
amb
在源存在多个Observables时,取出第一个或者是第一个产生的事件的observable,然后只发出它的元素
buffer
缓存元素,然后在缓存的元素周期性的发送出来
catchError
会拦截一个error,替换成其他的元素,然后传递给观测者,释observable正常的结束
catchErrorJustReturn
拦截error,替换成其他元素,并结束该序列
combineLatest
将多个源的observeable中最新的元素通过一个函数组合起来。然后将这个结果发送出来,这些源observables 中任意一个发出元素,都会发出一个结果,前提是这个源发出过元素
concat
将>=2的observable按顺序串联起来
concatMap
将observable转换成其他的observable,然后将这些observable串联起来
connect
ConnectableObservable 和 普通的observable相似,只不过在connect没有终止之前,是不会发出元素的。
在connect调用之后,将会发出所有的元素。
create
创建observable
debounce
过滤掉高频率的元素
debug
打印所有的信息订阅、事件及销毁信息
deferred
直到订阅发生,才创建observable,为每位订阅者创建全新的observable
delay
延迟发出
delaySubscription
延时订阅
materialize
将observable产生的所有事件转换为元素,发送出来
dematerialize
将materialize还原
distinctUntilChanged
阻止observbale 发出相同的元素
do
当observbale 产生某些事件时,执行特定的操作
elementAt
发出指定的第几个元素
empty
创建一个空的observable,只会产生completed事件
error
创建一个只有error 的observable
filter
过滤出指定的元素
flatMap
将observable转换成其他的observable,然后将这些observable合并
flatMapLatest
将 Observable 的元素转换成其他的 Observable,然后取这些 Observables 中最新的一个
from
将其他类型或者数据结构转换成observable
groupBy
将源
observable分解为多个子observable,并且每个子observable将源 Observable 中“相似”的元素发送出来
ignoreElements
忽略所有的元素,只发出error和completed事件
interval
创建一个observable,每隔一段时间发出一个索引数
just
将一个元素转换为observable
map
通过一个转换函数将每个元素转换一次
merge
将多个observable 合并成一个,当某一个 Observable 发出一个元素时,他就将这个元素发出。有error就终止
nerver
创建一个永远不会发出元素的observable
observableOn
决定observable在什么队列上调度
publish
将observable转换为可连接的observable,可连接的observable和普通的observable区别在于,可连接observable将会在订阅之后不会发射元素,只会在connect之后才会发射
reduce
与swift。 reduce一样
refCount
与publist 相反
repeatElement
重复发出某个元素
replay
确保观察者收到同样的序列,即便是订阅之后。普通转换为可连接,connect终止发出
retry
发生错误的时候,重试
sample
不定期取样
scan
持续的将 Observable 的每一个元素应用一个函数,然后发出每一次函数返回的结果
shareReplay
使观察者共享observable,即使这些元素是在订阅前发生的
single
限制oobservable只能产生一个元素或者error
skip
跳过开头的n个元素 skip(n)
skipUntil
忽略开头的几个元素,直到另外一个observable发出元素
skipWhile
跳过开头的元素,直到元素的判定为否
startWith
在元素的开头插入元素
subscribeOn
指定observable在哪个schedule上运行
take
指定发出头几个元素
takelast
仅仅从元素尾部发出n个元素
takeUntil
忽略在第二个observable产生事件后发出的元素
takefalse
镜像一个observable 直到条件为false
timeout
如果observable在规定的时间内没有发出元素,就发出一个error事件
timer
创建一个observable在一段延时后,发出唯一的一个元素
using
创建一个可被清除的资源,寿命和observable相同
window
将 Observable 分解为多个子 Observable,周期性的将子 Observable 发出来
withLatestFrom
将两个 Observables 最新的元素通过一个函数组合起来,当第一个 Observable 发出一个元素,就将组合后的元素发送出来
zip
通过一个函数将多个observable(不超过8个)组合起来,并发出结果