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