转载

RxJava的变换操作符和过滤操作符汇总

方法名 用法
map() 对序列的每一项都用一个函数来变换Observable发射的数据序列

flatMap()

concatMap()

flatMapIterable()

将Observable发射的数据集合变换为Observable集合,然后将这些Observable发射的数据平坦话地放进一个单独的Observable中
switchMap() 将Observable发射的数据集合转换为Observables集合,然后只发射这些Observables最近发射过的数据
scan() 对Observable发射的每一项数据应用一个函数,然后按顺序依次发射每一个值
groupBy() 将Observable拆分为Observable集合,将原始Observable发射的数据按Key分组,每一个Observable发射过一组不同的数据
buffer() 定期从Observable收集数据到一个集合,然后把这些数据集合打包发射,而 不是一个发射一个
window() 定期将来自Observable的数据拆分成一些Obs窗口,然后发射这些窗口,而不是每次发射一项
cast() 在发射之前强制将Observable发射的所有数据转换为指定类型
方法名 用法
filter() 过滤数据
takeLast() 只发射最后的N项数据
last() 只发射最后一项数据
lastDefault() 只发射最后一项数据,如果Observable为空,就发射默认值
takeLastBuffer() 将最后的N项数据当作单个数据发射
skip() 跳过开始的N项数据
skipLast() 跳过最后的N项数据
first() and takeFirst() 只发射第一项数据,或者满足某种条件的第一项数据
firstDefault() 只发射第一项数据,如果Observable为空,就发射默认值
elementAt() 发射第N项数据
elementAtOrDefault() 发射第N项数据,如果Observable数据少于N项,则发射默认值
sample() or throttleLast() 定期发射Observable最近的数据
throttleFirst() 定期发射Observable发射的第一项数据
throttleWithTimeout() or debounce() 只有当Observable在指定的时间段后还没有发射数据时,才发射一个数据
timeout() 如果在一个指定的时间段后还没发射数据,就发射一个异常
distinct() 过滤掉重复的数据
distinctUntilChanged() 过滤掉连续重复的数据
ofType() 只发射指定类型的数据
ignoreElements() 丢弃所有的正常数据,只发射错误或完成的通知
原文  https://juejin.im/post/5ef1abc66fb9a058b10aacf2
正文到此结束
Loading...