RxJs
September 8, 2022
RxJs #
流式编程库
- 时序,多值
- 异步,事件,组合
Observable #
可观察量,流
lazy Push collections of multiple values
懒推送的时序的多值的集合
Higher-Order Observables #
of #
将输入直接转为 Observable,不做任何转换
from #
将输入拍平转换为 Observable
Observer #
观察者
消费 Observable
Operators #
操作符
针对流的转换
concatAll #
按序订阅。串行
switchAll #
仅订阅最新。 花心
mergeAll #
同时,并发订阅。并发
exhaustAll #
仅订阅当前至其结束,期间丢弃新的。 专一
switchMap #
map + switchAll
订阅切换,新订阅来值时,取消老订阅。
mergeMap #
map + mergeAll
concatMap #
把每个值映射为 observable,然后使用 concatAll 扁平化所有内部 observable map + concatAll
exhaustMap #
map + exhaustAll。
Subject #
特殊形式的 Observable,值允许多播给多个观察者
BehaviorSubject #
保存最新的值,新订阅的 Observer 可拿到
ReplaySubject #
AsyncSubject #
VoidSubject #
异常处理 #
流 要么异常,要么给值后完成
catchError #
- catch and replace
- catch and rethrow
finalize #
跟 js的 final 关键字类似,无论异常或非异常都会执行,用于释放资源
retry #
notification observable #
仅当 notification observable emit 值时,input observable 会被重新订阅