如何阅读 RxJs mergeMap 大理石图

Ed *_*d I 5 javascript rxjs marble-diagram

在 的这个大理石图中mergeMap,你怎么读这个表达式?

// Kind of, looks like an em-dash near the end
mergeMap(i => 10*i--10*i--10*i--|)
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

fri*_*doo 4

mergeMap映射i到由字符串 表示的可观察量10*i--10*i--10*i-|。该字符串包含表示虚拟时间内发生的事件的弹珠语法

文档中使用的主要字符是:

  • -帧:1“帧”的虚拟时间流逝
  • [a-z0-9]任何字母数字字符:表示由生产者信令发出的值next()
  • |完成:可观察的成功完成。这是可观察到的生产者信号complete()
  • #error:终止 observable 的错误。这是可观察到的生产者信号error()

10--10--10-|图中第二个可观察量的表达式也是如此。例如

const tens$ = timer(0, 4).pipe(take(3), mapTo(10))
Run Code Online (Sandbox Code Playgroud)

10*i--10*i--10*i-|10--10--10-|是将由 发出的每个值与 相乘时得到的可观察值的表达式i。例如

of(1,3,5).pipe(
  mergeMap(i => tens$.pipe(map(v => v*i)))
)
Run Code Online (Sandbox Code Playgroud)