如何阅读RxJs mergeMap大理石图

问题描述

在这mergeMap的大理石图中,您如何读取该表达式?

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

enter image description here

解决方法

mergeMapi映射到由字符串10*i--10*i--10*i-|表示的可观察对象。此字符串包含marble syntax,代表虚拟时间内发生的事件。

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

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

因此10--10--10-|将是图片中第二个可观察到的表达式。 例如

const tens$ = timer(0,4).pipe(take(3),mapTo(10))

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

of(1,3,5).pipe(
  mergeMap(i => tens$.pipe(map(v => v*i)))
)