RxJava2操作符

RxJava2操作符

  • RxJava2操作符
    • 创建操作符
    • 变换操作符
    • 过滤操作符
    • 组合操作符
    • 其他操作符

RxJava2操作符

总结一下RxJava2的操作符,方便记忆和查询。

创建操作符

1.from:fromArray,将数组转换成observable;fromIterable,将集合转换成observable
2.just:将一个或一些数据转换成observable
3.range:创建以发送范围内的整数序列的Observable

Observable.range(0, 3).subscribe(onNextAction);

变换操作符

1.map:数据转换
2.flatMap:将一个发送事件的上游Observable变换为多个发送事件的Observables,然后将它们发射的事件合并后放进一个单独的Observable里。应用场景可以体现在源Observable发送的内容为一个复杂的数据集,想要拆解外层Bean对象获取内层Bean对象,就可以用flatMap操作符,一对多的关系。
3.concatMap:类似于flatMap操作符,不同的一点是它按次序连接
4.cast:强制转换为一个指定的类型,只能由父类对象转换为子类对象

过滤操作符

1.filter:过滤
2.elementAt:发送指定脚标或索引的数据

  //发送0、1、2、3、4,脚标为3的数据为 3
  Observable.range(0, 5).elementAt(3).subscribe(onNextAction);

3.distinct:去重
4.skip:跳过前面的数据,只发送后面的数据
5.take:和skip相反,只发送前面的数据
6.throttleFirst:只发送一定时间内第一个数据
7.throttleLast:和throttleFirst相反,只发送一定时间内最后一个数据
8.debounce:当一个事件发送时,在约定时间内没有再次发送这个事件,则发射这个事件,如果再次触发了,则重新计算时间

组合操作符

1.startWith:在要发送的数据之前插入其他数据
2.merge:将多个Observable对象进行合并,发送完其中一个Observable的所有数据,再发送另一个Observable的所有数据
3.concat:类似于merge操作符,不同的一点是它按照顺序进行发送,直到第一个Observable发送完毕数据后,第二个Observable才会进行数据的发送
4.zip:取每个Observable的数据合并成一个新的Observable,只发射数据最少的那个Observable一样的数据
5.combineLastest:当两个Observables中的任何一个发射了数据时,合并每个Observable发射的最近数据项,适合账号密码登录场景,每次用户输入一个数据,就请求服务器

其他操作符

1.delay:延时一定时间后发射数据
2.doOnNext:Observable对象发送数据后,Subscriber接收到数据之前,doOnNext会被调用
3.subscribeOn指定上游所发生的线程,observeOn指定下游所发送的线程
4.retry:当发生onError的时候会重试
5.interval:轮询,每间隔一段时间就发送数据
6.compose:对Observable流进行整体的变换,一般用于把一个或多个操作符封装起来,便于复用

你可能感兴趣的:(Android)