根据功能划分,操作符可以分为以下几类
- 创建类
- 转化类
- 过滤类
- 合并类
- 多播类
- 错误处理类
- 辅助工具类
- 条件分支类
- 数学和合计类
创建类
操作符 | 功能 |
---|---|
create | 直接创建观察者 |
of | 产生同步的数据流 |
range | 产生一个数值范围内的数据流 |
generate | 以循环方式产生数据 |
repeat和repeatWhen | 重复的产生数据 |
empty | 产生空数据 |
throw | 产生直接出错的数据 |
nerver | 永不完结的数据 |
interval 和 timer | 间隔给定时间持续产生数据 |
from | 从数组等枚举类型产生数据 |
fromPromise | 从promise对象产生数据 |
fromEvent 和 fromEventPattern | 从外部事件产生数据 |
ajax | 从ajax 产生数据 |
defer | 延迟产生数据 |
合并类
注意:名字中含有all的都是处理高阶数据流的
操作符 | 功能 |
---|---|
concat 和 concatAll | 把多个数据流以首尾方式合并 |
merge 和 mergeAll | 把多个数据流以先到先得的方式合并 |
zip 和 zipAll | 把多个数据流以一一对应方式合并 |
combineLatest、combineAll 和 withLatestFrom | 持续合并多个数据流最新的数据 |
race | 从多个数据流中选取第一个产生的数据流 |
startWith | 在数据流前面添加一个指定数据 |
forkJoin | 只获取多个数据流最后产生的那个数据 |
switch 和 exhaust | 从高阶数据流中切换数据 |
辅助类
操作符 | 功能 |
---|---|
count | 统计数据流中产生的所有数据的个数 |
max 和 min | 统计数据流中最大的和最小的数据 |
reduce | 和数据中的reduce操作类似 |
every | 判断是否所有数据满足某个条件 |
isEmpty | 判断一个数据流是否为空 |
defaultEmpty | 如果一个数据流为空就默认产生一个指定数据 |
过滤类
操作符 | 功能 |
---|---|
filter | 过滤掉不满足条件的数据 |
first | 获取满足判定的第一个数据 |
last | 获取满足判定的最后一个数据 |
take | 从数据源中选取最先出现的若干数据 |
takeLast | 从数据源中选取最后出现的若干数据 |
takeWhile 和 takeUntil | 从数据源中选取若干数据直到某种情况发生 |
skip | 忽略最先出现的若干数据 |
skipWhile 和 skipUntil | 从数据流中忽略数据直到满足某种条件 |
throttleTime、debounceTime 和 auditTIme | 基于时间的数据流量筛选 |
throttle、debounce 和 audit | 基于数据内容的筛选 |
distnct | 删除重复数据 |
distnctUntilChanged 和 distnctUntilKeyChanged | 删除重复的连续数据 |
ignoreElements | 忽略数据流中所有数据 |
elementAt | 获取指定位置出现的数据 |
single | 判断是否只有一个数据满足条件 |
转化类
操作符 | 功能 |
---|---|
map | 映射每个数据,和数组的map类似 |
mapTo | 将所有数据映射为同一个数据 |
pluck | 提取数据流中每个数据的某个字段 |
windowTime、windowCount、windowWhen、windowToggle和window | 产生高阶Observable对象 |
bufferTime,bufferCount、bufferWhen、bufferToggle和buffer | 产生数组构成的数据流 |
concatMap、mergeMap、switchMap、exhaustMap | 映射产生高阶Observable对象然后合并 |
scan 和 scanMerge | 产生规约运算结果的数据流 |
异常处理
操作符 | 功能 |
---|---|
catch | 捕获上游产生的error |
retry 和 retryWhen | 当上游产生错误时,尝试重试 |
finally | 无论是否出错都要进行的一些操作 |
多播
操作符 | 功能 |
---|---|
multicast | 灵活选取subject对象进行多播 |
publishLast | 只多播数据流中最后一个数据 |
publishReplay | 对数据流中给定的数量进行多播 |
publishBehavior | 拥有默认数据的多播 |