Rxjs
Observable的用法
使用complete结束
subscribtion
取消订阅
http、async、pipe
Add 方法
Of的用法
From 的用法(数组)
fromEvent(绑定事件)
通过pipe管道处理event对象
Pipe(通道)
处理流
使用take只取三次
Timer(相当于setInterval)
第一个参数是duration
第二个参数是间隔多少秒再发
Range
第一个参数是起始值
第二个是次数
如果只有一个参数就表示从0-end
combineLatest(多次最新)
直到每个 observable 都至少发出一个值后才会发出初始值,不过如果在等待其它流时又有最新流则使用最新的流
Zip(多次非最新)
每个流都发出一次后就会发出,相当于凑齐人就发车(关心每一次流)
Forkjoin(单次)
所有的流都结束了,发射最后一次的流,也是唯一一次
combineAll
合并所有流,3次高阶流完成后执行低阶流
Merge(同时执行两个流)
startWith和endWith
在流的开始和结尾添加值
withLatestForm
很快的点击会发出很多流,但是只会取最后一次的流
Buffer
收集流
bufferCount
收集流,超过一定次数发出
第二个参数是从上一轮哪个索引开始
bufferTime
缓存时间,缓存3秒再发射流
bufferToggle
bufferWhen
concatMap
处理值
concatMapTo
将发出的值更改为固定值
Exhaust
防抖
前面未执行完之前,一直点击会忽略
exhaustMap
相当于exhaust+map
Scan
Scan相当于reduce
Pairwise
生成两两组合的值
groupBy
分组
Pluck
获取属性值相当于获取item.id.age
switchMap(快速点击只执行一次)
每次都会取消里面的observable,不管是否执行完,
Empty(立即完成)
Audit
防抖
只会把最近的一次发出来
auditTime
相当于audit加定时器
DebounceTime
停下来后才会执行,会取消以前所有
Distinct
只会发没出现过的值
指定过滤
elementAt
获取指定索引的流
Filter
过滤流
Last
取最后一次
First
一次性点击
在这里插入图片描述
Sample
忽略源Observable的值,直到另一个Observable发出值,才推送源Observable的值
一开始不会打印定时器的值,直到点击document才会打印
sampleTime
指定发射时间
目标3秒发射一次才发射源值
Single
只能处理一个流,否则报错
条件过滤
Skip
跳过前面5个值
skipLast
从后面开始忽略,忽略最后一个值
skipUntil
直到点击后才开始推送流,忽略前面发出的
skipWhile
条件忽略
小于5会忽略
Take
只取前面的5个流
takeLast
只取最后n个值
takeUntil
一直取源头上的值,直到点击截止
takeWhile
只取开始符合条件的,否则不会触发
throttleTime
节流
Leading
是否节流前触发
Trailing
是否节流后触发
错误处理
使用catchError捕获异常
Retry
重试几次
Delay
延迟
delayWhen
timeInterval
返回一个对象包括时间间隔
Timeout
超时报错
Count
计算发出几次流
Max
求最大值
findIndex
返回索引
Find
返回的是一个对象
Every
返回true或false
多播
subject
同时执行两个流
使用next方法
BehavorSubject
可以储存最新的一个值,有新的observor订阅会立马推送当前的最新值
即使放后面也能订阅到
replySubject
订阅到最多前面一个值加后面所有值
设置缓存有效期
asyncSubject
结束后才推最后一个值
multicast
publishReply
缓存最新的两个值
publishLast
推送最后一个值
冷和热
冷
各自执行各自的
热
会共享前面的值