第三方-RxJava-操作符

RxJava操作符的介绍

操作符网址

创建操作(用于创建Observable的操作符)

Create

通过调用观察者的方法重新创建一个Observable

Defer

在观察者订阅之前不创建这个Observable,为每一个观察者创建一个新的Observable

Empty/Never/Throw

创建行为受限的特殊Observable

From

将其它的对象或数据结构转换为Observable

Interval

创建一个定时发射整数序列的Observable

Just

将对象或对象集合转换为一个会发射这些对象的Observable

Range

创建发射指定范围的整数序列的Observable

Repeat

创建重复发射特定的数据或数据序列的Observable

Start

创建发射一个函数的返回值的Observable

Timer

创建一个指定的延迟之后发射某个数据的Observable

变换操作(可用于对Observable发射的数据进行变换)

Buffer

缓存,可以简单的理解为缓存,它定期从Observable收集数据到一个集合,然后把这些数据集合打包发射,而不是一次发射一个

FlatMap

扁平映射,将Observable发射的数据变换Observables集合,然后将这些Observable发射的数据平坦化的放进一个单独的Observable,可以认为是一个将嵌套的数据结构展开的过程。(FlatMap把一个发送事件的上游Ovserable变换为多个发送事件的Observables,再把它们发射的事件合并后放进一个单独的Observable里,这个不保证变换后事件的顺序,若要有顺序要用concatMap)

GroupBy

分组,将原来的Observable分拆为Observable集合,将原始Observable发射的数据按Key分组,每一个Observable发射一组不同的数据

Map

映射,通过对序列的每一项每一项都应用一个函数变换Observable发射的数据,实质是对序列中的每一项执行一个函数,函数的参数就是这个数据项

Scan

扫描,对Observable的每一项数据应用一个函数,然后按顺序依次发射这些值

Window

窗口,定期将来自Observable的数据分拆成一些Observable窗口,然后发射这些窗口而不是每次发射一项。类似于Buffer,但Buffer发射的数据,WIndow发射的是Observable,每一个Observable发射原始Observable的数据的一个子集

过滤操作

(用于从Observable发射的数据中进行选择)

Debounce

只有在空闲了一段时间后才发射数据,通俗的说就是如果一段时间没有操作,就执行一次操作

Distinct

去重,过掉掉重复数据项

ElementAt

取值,取特定位置的数据项

Filter

过滤,过滤掉没有通过谓词测试的数据项,只发射通过测试的

First

首项,只发射满足条件的第一条数据

IgnoreElements

忽略所有的数据,只保留终止通知(onError或onCompleted)

Last

末项,只发射最后一条数据

Sample

取样,定期发射最新的数据,等于是数据抽样,有的实现里叫ThrottleFirst

Skip

跳过前面若干项数据

SkipLast

跳过后面的若干项数据

Take

只保留前面的若干项数据

TakeLast

只保留后面的若干项数据

结合操作(用于将多个Observable组合成一个单一的Observable)

And/Then/When

通过模式(And条件)和计划(Then次序)组合两个或多个Observable发射的数据集

CombineLatest

当两个Observables中的任何一个发射了一个数据时,通过一个指定的函数组合每个Observable发射的最新数据(一共两个数据),然后发射这个函数的结果

Join

无论何时,如果一个Observable发射了一个数据项,只要在另一个Observable发射的数据项定义的时间窗口内,就讲两个Observable发射的数据合并发射

Merge

将两个Observable发射的数据组合并成一个

StartWith

在发射原来的Observable的数据序列之前,先发射一个指定的数据序列或数据项

Switch

讲一个发射Observable序列的Observable转换为这样一个Observable:它逐个发射那些Observable最近发射的数据

Zip

打包,使用一个指定的函数将多个Observable发射的数据组合在一起,然后将这个函数的结果作为单项数据发射

错误处理

Catch

Retry

辅助操作

Delay

Do

Materalize/Dematerialize

ObserveOn

Serialize

SubScribe

SubScribeOn

TimeInterval

Timeout

Timestamp

Using

To

条件和布尔操作

All/Contains/Amb

DefaultIfEmpty

SequenceEqual

SkipUntil/SkipWhile

TakeUntil/TakeWhile

算术和聚合操作

Average/Concat/Reduce

Max/Min/Count/Sum

异步操作

连接操作

Connect

Publish

RefCount

Replay

转换操作

阻塞操作

字符串操作