RxJs中常用的操作符
总结一下RxJs中常用的一些操作符
创建类操作符
create
直接操作观察者
of
根据有限的数据产生同步数据流
ajax
从AJAX请求结果产生数据流
from
从数组等枚举类型数据产生数据流
range
产生一个数值范围内的数据
empty
产生空数据流
defer
延迟产生数据流
fromEvent 和 fromEventPattern
从外部事件对象产生数据流
generate
以循环方式产生数据流
interval 和 timer
间隔给定时间持续产生数据流
合并类操作符
combineLatest & combineAll & withLatestFrom
持续合并多个数据流中最新产生的数据
concat & concatAll
把多个数据流一首尾相连方式合并
forkJoin
只获取多个数据流最后产生的那个数据
merge & mergeAll
把多个数据流中数据以先到先得方式合并
partition
race
从多个数据流中选取第一个产生内容的数据流
zip & zipAll
把多个数据流中数据以一一对应方式合并
startWith
在数据流前面添加一个指定数据
辅助类操作符
count
统计数据流中产生的所有数据个数
max & min
统计数据流中最大或最小的数据
reduce
对数据流中所有数据进行规约操作
every
判断是否所有数据满足某个判定条件
find & findIndex
找到第一个满足判定条件的数据
isEmpty
判断一个数据流是否不包含任何数据
defaultIfEmpty
如果一个数据流为空,就默认产生一个指定数据
转化类操作符
map
将每个元素用映射函数产生新的数据
mapTo
将数据流中每个元素映射为同一个数据
pluck
提取数据流中每个数据的某个字段
windowTime & windowCount & windowWhen & windowToggle & window
产生高阶Observable对象
buffer & bufferCount & bufferWhen & bufferToggle & buffer
产生数组构成的数据流
concatMap & mergeMap & switchMap & exhasutMap
映射产生高阶Observable对象,然后合并
scan & mergeScan
产生规约运算结果组成的数据流
过滤类操作符
filter
过滤掉不满足判定条件的数据
first
获得满足判定条件的第一个数据
last
获得满足判定条件的最后一个数据
take
从数据流中选取最先出现的若干数据
takeLast
从数据流中选取最后出现的若干数据
takeUntil & takeWhile
从数据流中选取数据直到某种情况发生
skip
从数据流中忽略最先出现的若干数据
skipWhile & skipUntil
从数据流中忽略数据直到某种情况发生
throttleTime & debounceTime & auditTime
基于时间的数据流量筛选
throttle & debounce & audit
基于数据内容的数据流量筛选
sample & sampleTime
基于采样方式的数据流量筛选
distnct
删除重复的数据
distnctUntilChanged & distnctUntilKeyChanged
删除重复的连续数据
igoreElements
忽略数据流中的所有数据
elementAt
只选取指定出现位置的数据
single
判断是否只有一个数据满足判定条件
异常错误处理操作符
catch
捕获并处理上有产生的异常错误
retry & retryWhen
当上游产生错误时进行重试
finally
无论是否出错都要进行一些操作
多播操作符
multicast
灵活选取Subject对象进行多播
publishLast
只多播数据流中最后一个数据
publishReplay
对数据流中给定数量的数据进行多播
publishBehavior
拥有默认数据的多播