RxJava2小记

目前使用如下版本
'io.reactivex.rxjava2:rxjava:2.1.17'
'io.reactivex.rxjava2:rxandroid:2.0.2'

引入了 Flowable 支持背压
Observable 不再支持背压
Function 代替 Func1
BiFunction 代替Func2
Function3,4,5,6,7,8,9 代替Func3,4,5,6,7,8,9
Function 默认throws Exception
Consumer 代替 Action1
BiConsumer 代替 Action2 ... ActionN-1 保留了ActionN

Obserable 被观察者
Observer 观察者

Obserable.create(ObservableOnSubscribe)
...
.subscribe(Observer)

操作符
create 创建被观察者
map 把Observable转换成另一Observable 如integer转string
zip 打包配对事件 打包次数以某个Observable最小事件数为准 如A有3次事件 B有5次 则zip打包3次
concat 有序链接事件 如concat(a,b) 则有序依次发布a b事件
flatMap 无序的把Observable转换成另一Observable 如integer转string
concatMap 有序的把Observable转换成另一Observable 如integer转string
distinct 事件去重功能
filter 过滤器 retrun true则返回 false则过滤
buffer 把单个事件压进集合,类似缓冲寄存器概念,传入count和skip变量,count为每个集合的max size,skip为取事件的位移步长,如事件123456 butter(count:3,skip:2) 可以得到123,345,56
timer 延迟发送事件 默认新线程里计时,接受事件时需切换回主线程操作 timer(1,SECONDS) 延迟1秒发送
interval 间隔事件发送事件 默认新线程里计时,接受事件时需切换回主线程操作 interval(1,2,SECONDS) 延迟1秒开始发送并每间隔2秒重复发送,由于计时器线程与页面销毁与否无关,所以通过创建interval时保存在Disposable变量中,在页面销毁时dispose即可
doOnNext 观察者接收到数据之前可以适当做些操作
skip 跳过N个事件开始接收
take 接收N个事件后 不再接收
just 简单快速的创建被观察者事件
single 只接收一个参数
debounce 去除频率过快的,N次事件间隔过小时,取最后一个事件
defer 延后执行 事件先不生成,在观察者订阅时再生成被观察者的事件
last 取最后一个事件,last的参数为无事件时,则发送一个默认的事件
merge 无序合并多个被观察者,与concat有区别,concat为顺序合并多个被观察者

你可能感兴趣的:(RxJava2小记)