方法名 | 用法 |
---|---|
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