注:本文译自官网连接
按功能进行分类 Operators By Category
1.创建Observable
-
Create
—以编程方式调用观察者方法从头开始(from scratch)创建一个Observable -
Defer
— 在观察者订阅之后创建Observable,并为每个观察者创建一个新的Observable -
Empty
/Never
/Throw
— 创建具有非常精确和有限行为的Observables。 -
From
/fromArray
— 将一些其他对象或数据结构转换为Observable。 -
Interval
— 创建一个Observable,它发出一系列整数,每间隔一段特定时间发射一个整数。 -
Just
— 将一个对象或一组对象转换为一个可以发出该对象或那些对象的Observable。 -
Range
— 创建一个发射某一范围连续整数的Observable,2个参数,起始值和个数 -
Repeat
— 创建一个可重复发射特定项目或项目序列的Observable -
Start
— 创建一个可以发出函数返回值的Observable 注:RxJava2中没有该操作符 -
Timer
— 创建一个Observable,在给定的延迟后发射一个单个项目的Observable
操作转换Observable的发射值
-
Buffer
—定期将Observable中的数据项收集到bundle包中并发出这些bundle包,而不是一次只发射一个数据 -
FlatMap
— 将Observable发射的数据项转换为多个Observable,然后将这些Obserable平坦化为单个Observable -
GroupBy
— 将一个Observable分成一组Observable,每个Observable从原始Observable发出不同的一组数据,按键的值组织 -
Map
— 通过一个函数转化每个从Observable发射出的值。 -
Scan
— 对Observable发出的每个数据项按顺序应用一个函数,并发出每个连续的值. -
Window
— 定期将Observable中的数据项细分为Observable窗口并发出这些窗口,而不是一次发送一个项目
过滤Observable
从源Observable有选择的发射数据的操作符
-
Debounce
— 如果特定的时间跨度已经过去而没有发射另一个数据,则只从Observable发射某个数据 -
Distinct
— 去除重复数据项 -
ElementAt
— 只发射某个数据项 -
Filter
— 只发射某些通过测试(test)的数据项 -
First
— 只发射Observable中的第一个item或者第一个满足某条件的item -
IgnoreElements
— Observable不发射任何项目,但要镜像它的终止通知 -
Last
— 只发射最后一个item. -
Sample
— 在一个时间周期中,发射最近的item -
Skip
— 不发射前n个items -
SkipLast
— 不发射最后n个items -
Take
— 只发射前n个items -
TakeLast
— 只发射最后n个items
合并Observables
合并几个源Observables来创建唯一一个Observable的操作符
-
And
/Then
/When
— 通过Pattern
和Plan
中介结合由两个及以上的Observables发射的items -
CombineLatest
— 当一个item由两个Observable发射时,通过指定的功能合并每个Observable发射的最新item,并根据此功能的结果发射item -
Join
— 当一个Observable中的item在根据另一个Observable发射的item定义的时间窗口内发射时,将两个Observable发出的项目组合起来 -
Merge
— 通过合并多个Observables发射的items把多个Observables合并为一个Observable -
StartWith
— 返回一个Observable,先发射一个指定的值,再发射源Observable发射的值 -
Switch
— 将一个Observable转换成一个新Observable,新Observable发射这些Observables中最近发射的item -
Zip
— 通过指定的函数将多个Observable的发射的items结合在一起,并发射结合的items
错误处理操作符
帮助从Observable的错误中恢复的操作符
Observable使用操作符
Observable的有用的工具箱
-
Delay
— 将Observable发射的数据推迟一定时间 -
Do
— 注册一个处理各种Observable生命周期事件的动作,RxJava2中的doOnNext,doAfterNext,doOnComplete等方法 -
Materialize
/Dematerialize
— 代表发出的items和作为发射items发送的通知,或者反过来 -
ObserveOn
— 指定观察者将观察此Observable的调度程序(线程),即指定观察者Observer的运行线程 -
Serialize
— 强制Observable进行序列化调用并表现良好 -
Subscribe
— 根据Observable发射的数据和通知进行操作,即指定一个Observer。 -
SubscribeOn
— 指定该Observable的运行线程 -
TimeInterval
— 将发射items的Observable转换为能够发出指示这些发射items之间流逝的时间量的Observable(不好翻译,看原文吧)
convert an Observable that emits items into one that emits indications of the amount of time elapsed between those emissions -
Timeout
— 镜像源Observable,但是如果一段时间内没有发出任何条目则发出错误通知 -
Timestamp
— 给Observable发出的条目附加一个时间戳 -
Using
— 创建一个与Observable具有相同生命周期的可支配(用后可抛弃)资源
条件与布尔运算符 Conditional and Boolean Operators
评估计算一个或多个Observables或Observables发出的条目的操作符
-
All
— 确定Observable发出的所有条目是否满足某些条件 -
Amb
— 给定一个或多个源Observables,仅从第一个发射item的Observable发射所有items -
Contains
— 确定Observable是否发出特定的item -
DefaultIfEmpty
— 从源Observable中发射items,如果源Observable不发射任何item则发射一个默认的item。 -
SequenceEqual
— 确定两个Observables是否发出相同的items序列 -
SkipUntil
— 丢弃Observable发射的items,直到第二个Observable发射item -
SkipWhile
— 丢弃Observable发射的items,直到特定条件变为false -
TakeUntil
— 在第二个Observable发射一个item或者终止后,丢弃Observable发射的items -
TakeWhile
— 某特定条件变为false后,丢弃Observable发射的item
SkipWhile时一直丢弃,直到某个条件变为false,然后就不丢弃了。TakeWhile是一直不丢弃,直到某个条件变为false后,开始丢弃
数学与集合运算符 Mathematical and Aggregate Operators
对某个Observable发射的所有items进行操作的操作符
-
Average
— 计算Observable发射的所有数字的平均值,并发射该平均值 -
Concat
— 按序发射2个或多个Observables发射的items,各个Observables的items不交错。 -
Count
— 计算源Observable发射的items的数量,并仅发射该值。 -
Max
— 确定并发射Observable发射的最大值item。 -
Min
— 确定并发射Observable发射的最小值item。 -
Reduce
— 对Observable发射的每个item按照顺序应用某个函数计算和发出最终值。 -
Sum
— 计算Observable发射的数字的总和,并发射该值。
背压 Backpressure Operators
- backpressure operators — 应对Observables产生items比Observers消费他们快的策略。
可连接的Observable操作符 Connectable Observable Operators
拥有更精确控制的订阅状态的特定Observables
-
Connect
— 指示可连接的Observable开始向订阅者发送项目 -
Publish
— 将普通的Observable转换为可连接的Observable -
RefCount
— 使可连接的Observable像普通的Observable一样运行 -
Replay
— 确保所有observers都能看到相同的发射的items,即使他们在Observable开始发射items之后订阅它
转化Observables的操作符 Operators to Convert Observables
-
To
— 转化一个Observable为另一个object或数据结构。