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() 丢弃全部的正常数据,只发射错误或完成的通知

后续补上部分源码分析spa

相关文章
相关标签/搜索