ReactiveX函数简要说明

2.
Defer 创建数据流,但只有在有观察者来订阅时才创建数据流,而且对于每个观察者来说都创建一个新的数据流
Empty 创建一个数据流:不发送值直接结束。
Never 创建一个数据流:不发送值,永远不结束。
Throw 创建一个数据流:抛出异常。
From / ToObservable 把其他对象和数据类型转换成数据流。
Interval 创建一个数据流:每隔指定时间就发送一个值,只有在取消订阅时才会结束。
Return 创建一个数据流:发送一个值然后结束。
Range 创建一个数据流:发送某个特定区间内连续的整数序列然后结束。
Repeat 创建一个数据流:重复多次发送一个值或者多个值然后结束。
Start / FromCallable 创建一个数据流:执行指定函数并发送函数的返回值,然后结束。
Start / FromCallable 缺省情况下会在新的线程中执行指定函数。
ToAsync 可以将一个普通函数转化为创建数据流的函数。
Timer 创建一个数据流:延迟指定时间发送一个值然后结束。
3.
Buffer 转换数据流:间隔性地将数据流中邻近的数据打包,形成数据包的数据流。
SelectMany 转换数据流:将源数据流的每一项都转换成数据流,从而形成数据流的数据流,最后再平坦化将两维数据流合并成一个数据流。
GroupBy 转换数据流:将数据流分组,结果是被分组的数据流的数据流。所谓被分组的数据流是指带分组键(Key)的数据流。\
Select 转换数据流:针对源数据流的每一项都调用指定函数后将源数据流映射为目标数据流。
Cast 转换数据流:将源数据流的每一项都转变为指定类型,不能转型时出错,类似类型强制转换之类的。
OfType 过滤数据流:只发送源数据流中指定类型的数据。
Scan ,将数据流的前一个数据作为数据叠加到下一次调用
Window 转换数据流:间隔性地将数据流分段
4.
Throttle 只发送源数据流中满足如下条件的数据:源数据流在发送该数据之后在指定时间段内未发送任何数据。
Distinct 忽略源数据流的重复数据,只发送源数据流中其余各项。
DistinctUntilChanged 忽略源数据流中邻近的重复数据,只发送源数据流中其余各项。
ElementAt 只发送源数据流中的第 n 项。当源数据流中没有第 n 项时报错。
ElementAtOrDefault 当源数据流中没有第 n 项时不报错,发送给定的缺省值。
Where 过滤数据流:只发送源数据流中符合某个条件的数据。
FirstAsync 只发送源数据流中的(满足条件的)第 1 项,如果数据不存在就报错。
SingleAsync 发送源数据流中的(满足条件的)唯一 1 项,如果数据不存在或者多于 1 项就报错。
FirstOrDefaultAsync / SingleOrDefaultAsync 当数据不存在时不报错,发送给定的缺省值。
Latest / Next 返回源数据流中最晚发送的数据。
MostRecent 返回源数据流中最近观察到的数据。数据不存在时返回缺省值。
IgnoreElements 忽略源数据流中的数据,仅仅发送源数据流的终止操作(结束或出错)。
Last 只发送源数据流中的最后 1 项。源数据流中没有数据时报错。
LastOrDefault 当源数据流中没有数据时不报错,发送给定的缺省值。
Sample 过滤数据流:在每一个指定的时间段只取最后一个数据。
Skip 跳过前 n 项 只发送源数据流中其余各项。
SkipLast 跳过最后 n 项 只发送源数据流中其余各项。
Take 只发送源数据流中的前 n 项。
TakeLast 只发送源数据流中的最后 n 项。
5.
And/Then/When 将两个或多个数据流的数据通过 Pattern 和 Plan 中间量合为一体。 操作符中数据结合的方法为将所有源数据流的第 1 个数据结合,然后再将所有源数据流的第 2 个数据结合,以此类推,直到某一个源数据流没有数据为止。
CombineLatest 取两个数据流中的最新数据通过调用指定函数合为一体,两个流中的数据数量可以不相等,以最新的数据作为值。
Join 返回数据流的交集或者某一方的交集
JoinGroup 返回数据流的交集并分组
Merge 将多个数据流的数据按照数据的先后顺序合并成一个数据流。
StartWith 在发送源数据流的数据之前先发送指定的数据序列。
Switch  开始发送流A,如果后来流B也出现了数据,那么终止A数据发送,改为发送流B
Zip 操作符中数据结合的方法为将所有源数据流的第 1 个数据结合,然后再将所有源数据流的第 2 个数据结合,以此类推,直到某一个源数据流没有数据为止。
6.
All 检查一个数据流的所有数据是否都满足某个条件。当完成,或者出现不符合条件的时候,subscribe里的内容被触发
Amb给定两个或多个数据流,Amb 只发送最早发送数据的数据流的所有数据。
Contains 检查一个数据流是否发送了某个特定数据。
Any 检查一个数据流是否发送了数据(可以设定条件筛查的)。
IsEmpty 检查一个数据流是否没有发送任何数据。
DefaultIfEmpty 发送源数据流的所有数据,当源数据流没有数据时发送缺省的某个数据。
SequenceEqual 判断两个数据流是否发送完全相同的数据。
SkipUntil 忽略源数据流的数据,直到另一个数据流开始发送数据后才开始发送源数据流的数据。
SkipWhile 忽略源数据流的数据,直到某个条件不再满足时才开始发送源数据流的数据。
TakeUntil 发送源数据流的数据,直到另一个数据流开始发送数据之后停止发送
TakeWhile 发送源数据流的数据,直到某个条件不再满足后停止发送。
7.
Average 计算源数据流所有数据的平均值,然后发送这个平均值。
Max 计算源数据流所有数据的最大值,然后发送这个最大值。
Min 计算源数据流所有数据的最小值,然后发送这个最小值。
Sum 计算源数据流发送的所有数值的和,然后发送这个值。
Count 计算源数据流的个数,然后发送这个值。
Concat 合并数据流,按照数据流的连接顺序依次发送各个数据流的数据。
Aggregate 将流上一个数据作为参数进行运算并参与本次数据的计算
8.
Catch异常捕捉
OnErrorResumeNext 一个数据流无论出错还是正常结束都会转到后一个指定数据流。
Retry 异常时重试,可以指定重新尝试的次数。不指定次数时,Retry 会进行无限次重新尝试。
ToArray / ToList / ToDictionary(ToMap) / ToLookup(ToMultiMap) 能将源数据流中的所有数据打包装进一个集合,发送这个集合并结束。
Wait 会等待源数据流发送完毕,源数据流正常结束时返回最后一个数据,源数据流出错时报错抛出异常。
ToEventPattern 将数据流转变为具有 OnNext 事件成员的对象,转变之后数据流发送数据时 OnNext 事件将被触发。
9.
Delay 发送源数据流的数据,但是发送时间要延迟一个指定的时间段。
DelaySubscription 发送源数据流的数据,但是要订阅时间要延迟一个指定的时间段
Do 所注册的回调函数在源数据流调用 OnNext, OnError 以及 OnComplete 之前被调用。Do 最多可以注册 3 个回调函数。
Finally 所注册的回调函数在源数据流调用 OnError 或 OnComplete 之后被调用。Finally 只能注册 1 个回调函数。
Materialize 将对象包装成通知,处理每个数据时发送通知
Dematerialize 
Synchronize
TimeInterval 发送源数据流的数据,在数据上附上与上一个数据间的时间间隔。
Timestamp 发送源数据流的数据,在数据上附上时间戳。
Timeout 发送源数据流的数据,但是当指定时间段内没有发送任何数据时会报错抛出 TimeoutException 异常。
Using 可以创建一个和源数据流具有同样生命周期的可销毁的资源。当源数据流终止之后,Using 所创建的资源也将被销毁。
10.
Publish / PublishLast 将普通数据流发布(转变)为可连接的数据流。
Connect 可连接的数据流必须连接后才开始发送数据
RefCount 将可连接的数据流重新变回普通数据流,并且给数据流加上引用计数语义,订阅时引用计数器加一,取消订阅时引用计数器减一,订阅者都取消订阅时数据流自动销毁。
Replay 给热数据流加上 Replay 语义,即缓存所有的数据,使后来的订阅者也能观察到订阅之前所发送的数据。可以指定缓冲区的大小。
13.
ReplaySubject 当有新的订阅者时将之前所有的数据重播给订阅者,可以指定缓存大小
BehaviorSubject 可以指定一个默认值,如果订阅时没有任何缓存数据,则输出一个默认值,订阅时重播所有数据。
AsyncSubject 调用onCompleted的时候返回最后一个值

你可能感兴趣的:(ReactiveX函数简要说明)