rxjava2 学习笔记

2017-07-25  本文已影响13人  jianshuwangyd

特点

操作符

create():    创建最简单的事件流
just():      创建事件流,可发送多个参数的数据流
from():      创建事件流,可发送不同类型的数据流
defer():     创建事件流,可缓存可激活事件流
range():     创建事件流,可发送范围内的数据流
repeat():    创建可重复次数的事件流
interval():  创建延时重复的事件流
timer():     创建一次延时的事件流
map():      对数据流的类型进行转换
flatMap():  对数据流的类型进行包装成另一个数据流  无序
concatMap():对数据流的类型进行包装成另一个数据流 有序 
groupby():  对所有的数据流进行分组
scan():     对上一轮处理过后的数据流进行函数处理
buffer():   缓存发射的数据流到一定数量,随后发射出数据流集合
window():   缓存发射的数据流到一定数量,随后发射出新的事件流
debounce():  事件流只发射规定范围时间内的数据项
distinct():  事件流只发射不重复的数据项
elementAt(): 事件流只发射第N个数据项
filter():    事件流只发射符合规定函数的数据项
first():     事件流只发射第一个数据项
ignoreElements():忽略事件流的发射,只发射事件流的终止事件
last():      事件流只发射最后一项数据项
sample():    事件流对指定的时间间隔进行数据项的采样
skip():      事件流忽略前N个数据项
skipLast():  事件流忽略后N个数据项
take():      事件流只发射前N个数据项
takeLast():  事件流只发射后N个数据项
merge()/concat(): 无序/有序的合并两个数据流
zip():            两个数据流的数据项合并成一个数据流一同发出
startWith():      将待合并的数据流放在自身前面一同发出
join():           将数据流进行排列组合发出,不过数据流都是有时间期限的
combineLatest():  合并最近发射出的数据项成数据流一同发出
onErrorReturn():        当错误发生时,它会忽略onError的回调且会发射一个新的数据项并回调onCompleted()
onErrorResumeNext():    当错误发生时,它会忽略onError的回调且会发射一个新的事件流并回调onCompleted()
onExceptionResumeNext():当错误发生时,如果onError收到的Throwable不是一个Exception,它会回调onError方法,且不会回调备用的事件流,如果onError收到的Throwable是一个Exception,它会回调备用的事件流进行数据的发射
retry():                当错误发生时,发射器会重新发射
retryWhen():            当错误发生时,根据Tharowble类型决定发射器是否重新发射
delay():      延迟事件发射的数据项
do():         监听事件流的生命周期
materialize()/dematerialize():对事件流进行装箱/拆箱
serialize():  同步事件流的发射
timeInterval():对事件流增加时间间隔
timeout():    对事件流增加限定时间
timestamp():  对事件流增加时间戳
using():      对事件流增加一次性的资源
to():         对数据流中的数据项进行集合的转换
all():          对所有数据项进行校验
contains():     所有数据项是否包含指定数据项
amb():          多个事件流中,只发射最先发出的事件流
defaultIfEmpty():如果数据流为空则发射默认数据项
sequenceEqual():判断两个数据流是否完全相等
skipUntil():    当两个事件流发射时,第一个事件流的数据项会等到第二个事件流开始发射时才进行发射
skipWhile():    当发射的数据流达到某种条件时,才开始发射剩余所有数据项
takeUntil():    当两个事件流发射时,第一个事件流的数据项会等到第二个事件流开始发射时终止发射
takeWhile():    当发射的数据流达到某种条件时,才停止发射剩余所有数据项
average():  求所有数据项的平均值
max/min():  求所有数据项的最大或最小值
sum():      求所有数据项的总和
reduce():   对上一轮处理过后的数据流进行函数处理,只返回最后的结果
collect():  对上一轮处理过后的数据流进行函数处理,可改变原始的数据结构
publish():    将普通的事件流转换成可连接的事件流
connect():    将可连接的事件流进行连接并发射数据
refCount():   将可连接的事件流转换成普通的事件流
replay():     缓存可连接的事件流中的所有数据项

Processor 和 Subject

1、AsyncSubject,BehaviorSubject,ReplaySubject,PublishSubject
2、AsyncProcessor, BehaviorProcessor,ReplayProcessor,PublishProcessor

 AsyncProcessor
 不论何时订阅,都只发射最后一个数据,如果因为异常而终止,不会释放任何数据,但是会向 Observer 传递一个异常通知。
 
 BehaviorProcessor
 发射订阅之前的一个数据和订阅之后的全部数据。如果订阅之前没有值,可以使用默认值。
 
 PublishProcessor
 从哪里订阅就从哪里发射数据。
 
 ReplayProcessor
 无论何时订阅,都发射所有的数据。
 
 SerializedProcessor
 其它 Processor 不要在多线程上发射数据,如果确实要在多线程上使用,用这个 Processor 封装,可以保证在一个时刻只在一个线程上执行。
 
 UnicastProcessor
 只能有一个观察者。
上一篇 下一篇

猜你喜欢

热点阅读