《学习记录》RxJava常用操作符。
来源:互联网 发布:python 3.0 廖雪峰pdf 编辑:程序博客网 时间:2024/06/06 13:10
RxJava常用操作符
- Repeat、Retry,repeat是onComplete后重新执行subscribe,retry是onError后重新执行subscribe
repeatwhen、retryWhen是自定义重新subscribe的规则。
all ,如果发射的数据都满足条件,则返回true
amd,几个Observable合并起来,只发送最先发送数据的observable.
contains,发送的数据里知否包含一个数据。
- isEmpty,是否发送过数据,发送过就是false。
- defaultIfEmpty,如果是emtry,就发送一个默认数据。
- SequenceEqual,用来判断两个observable是否相同,发送序列相同、数据相同,结果状态相同。
- skipUtil,skipWhile,
这两个操作符都是根据条件来跳过一些数据,不同之处在于SkipUnitl是根据一个标志Observable来判断的,当这个标志Observable没有发射数据的时候,所有源Observable发射的数据都会被跳过;当标志Observable发射了一个数据,则开始正常地发射数据。SkipWhile则是根据一个函数来判断是否跳过数据,当函数返回值为true的时候则一直跳过源Observable发射的数据;当函数返回false的时候则开始正常发射数据。 - takeUtil,takeWhile
TakeUntil和TakeWhile操作符可以说和SkipUnitl和SkipWhile操作符是完全相反的功能。TakeUntil也是使用一个标志Observable是否发射数据来判断,当标志Observable没有发射数据时,正常发射数据,而一旦标志Observable发射过了数据则后面的数据都会被丢弃。TakeWhile则是根据一个函数来判断是否发射数据,当函数返回值为true的时候正常发射数据;当函数返回false的时候丢弃所有后面的数据。 - defer 延迟Observable的创建,当有观察者subscrible时才创建observable。
- range,发送一个范围内的数据。
- interval,轮询操作,发送的数据从0开始,一次递增。三个参数的函数可以初始化开始延迟时间。
- timer,延迟设置的时间来进行操作,三个参数的可以进行轮训操作,类似interval。
- filter,过滤。返回boolean类型。
- take,只发送前几个数据。
- takeLast,只需要后几个数据。
- distinct,去重操作。
- distinctUntilChanged,如果当前数据跟前一个数据一样,则去掉。例如温度计的计数。
- first,last,发送第一个或者最后一个元素。
- skip、skipLast,跳过或者跳过最后几个元素。
- ElementAt,只发送固定的选择的元素。ElemtAtOrDefault,类似ElementAt,多了一个默认值。
- sample,在一定的时间间隔内发送最后一个元素。
- throttleFirst,在一定的时间间隔内只发送第一个元素。比较防止多次点击。
- timeout,设置一个超时时间,如果在超时时间内没有发送元素,则出发onerror。
- debounce,防抖动,在一定的时间间隔内,延时一段时间,如果没有新数据发送,则发送最后一个数据。
Map家族
- map, 对结果进行一次变换
- flatMap,以平铺的方式进行变换,返回的结果也是Observable。
- concatMap,按照以前的顺序发送数据。
- flatMapIterable,类似map,但返回的是数组。
- switchMap,停止监听当前的数据,转而监听新的数据。
- scan,累加器函数。
- groupby,分组函数,第一个参数是分组的key,第二个参数是对数据做出改变。
- butter,把发送数据缓存起来
- window,和buffer类似,不过返回的是Observable
cast,接收一个class,转换为另一种数据类型。
merge:合并多个observable,mergeDelayError,其中一个observable发生错误也继续,最后出发onError
- zip,把两个observable按照一定规则合并成一个。
- join,拼接一个observable到另一个observable上,第二个func1表示源observable的有效时长,第三个func1表示目标observable的有效时长,第四个func2表示对数据的处理。
- combileLast,结合最后一个发射的目标。
- and,then,when,组合一个joinObservable,进行处理数据。
- switch,当有新的observable发送数据时,旧的observable的数据被丢弃。
- startWith,在发送数据之前,先发送一些数据。
- concat,发送数据后,追加一些数据。
0 0
- 《学习记录》RxJava常用操作符。
- RxJava操作符记录
- RxJava常用操作符
- 常用rxjava操作符
- RxJava操作符学习
- RxJava学习--操作符
- RxJava中的常用操作符
- Rxjava常用的操作符
- RxJava操作符的一些记录
- RxJava-操作符 初步学习
- Rxjava操作符学习博客
- RxJava操作符学习APP
- RxJava--操作符学习笔记
- RxJava操作符学习APP
- Rxjava学习(二操作符)
- RxJava操作符学习备忘
- RxJava操作符学习笔记
- RxJava(三)简单常用操作符
- CamShift算法
- hdu 5606 tree 并查集
- nyoj 168 第三届河南省赛
- 【miscellaneous】多播(组播)原理分析
- 菜单权限设计
- 《学习记录》RxJava常用操作符。
- 编程珠玑
- SVN --help
- CSS对浏览器的兼容性
- response对象实现下载
- 哈夫曼树与哈夫曼编码
- MySql数据库版本和Innodb引擎对照表
- https://github.com/ldoublem/RingProgress
- mysql的分区分表