RxSwift

514 阅读4分钟

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个)组合起来,并发出结果