总结一下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

拥有默认数据的多播