方法名 | 用法 |
---|---|
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() | 丢弃所有的正常数据,只发射错误或完成的通知 |