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为顺序合并多个被观察者

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 注:只包含标准包中的操作符,用于个人学习及备忘参考博客:http://blog.csdn.net/maplejaw...
    小白要超神阅读 2,250评论 2 8
  • 作者: maplejaw本篇只解析标准包中的操作符。对于扩展包,由于使用率较低,如有需求,请读者自行查阅文档。 创...
    maplejaw_阅读 45,856评论 8 93
  • 一、RxJava操作符概述 RxJava中的操作符就是为了提供函数式的特性,函数式最大的好处就是使得数据处理简洁易...
    测天测地测空气阅读 651评论 0 1
  • 一、RxJava操作符概述 RxJava中的操作符就是为了提供函数式的特性,函数式最大的好处就是使得数据处理简洁易...
    无求_95dd阅读 3,183评论 0 21
  • RxJava操作符图谱 创建操作符 create 完整创建1个被观察者对象(Observable) just 快速...
    yswheye阅读 9,658评论 1 15