RxJs

RxJs

September 8, 2022
js

RxJs #

流式编程库

  1. 时序,多值
  2. 异步,事件,组合

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 #

  1. catch and replace
  2. catch and rethrow

finalize #

跟 js的 final 关键字类似,无论异常或非异常都会执行,用于释放资源

retry #

notification observable #

仅当 notification observable emit 值时,input observable 会被重新订阅