怎么理解Observable中的流?

mergeMap操作符用于将源Observable发出的每个值“映射”到一个新的Observable上,并将这些新Observable发出的值“扁平化”地合并回一个单独的Observable中。这意呀着,如果源Observable发出的多个值被映射成多个Observable,那么这些Observable发出的值会交错地发出,形成一个连续的流。

请问下,这里说的流是什么意思?
请问是否是指的是数据流的意思?

阅读 972
1 个回答
✓ 已被采纳

RxMarbles - mergeMap

image.png

import { of, map, mergeMap } from "npm:rxjs@latest";

of("A", "B", "C")
  .pipe(mergeMap((x) => of(1, 2, 3).pipe(map((y) => `${x}${y}`))))
  .subscribe(console.log);

将输出:

A1
A2
A3
B1
B2
B3
C1
C2
C3

of("A", "B", "C") 将输出一个流

flowchart LR
s((start))
n1[A]
n2[B]
n3[C]
e((end))
s-->n1-->n2-->n3-->e
mergeMap 将源Observable发出的每个值“映射”到一个新的Observable上,并将这些新Observable发出的值“扁平化”地合并回一个单独的Observable中。

当源发出值 A 时,mergeMap 将它映射为

flowchart LR
s((start))
n1[A1]
n2[A2]
n3[A3]
e((end))
s-->n1-->n2-->n3-->e

源的三个输出将被映射为三个 Observable,并被 mergeMap 扁平化为一个 Observable

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题