创建与转换

RxJS map + filter

按声明顺序完成一对一转换,再移除不满足条件的值。

map(x × 2) → filter(x > 4)

时间线如何变化

  1. 1
    1 被映射成 2

    2 不满足 value > 4,被 filter 拦截。

  2. 2
    2 被映射成 4

    4 仍然没有通过过滤条件。

  3. 3
    3 → 6

    第一个值进入输出流。

  4. 4
    4 → 8

    map 与 filter 始终按 pipe 中的顺序执行。

  5. 5
    5 → 10

    最终输出 6、8、10。

受支持的示例代码

实验室只根据下列示例中的关键操作符生成预设时间线,不执行任意输入代码。

import { from, map, filter } from 'rxjs'

const result$ = from([1, 2, 3, 4, 5]).pipe(
  map(value => value * 2),
  filter(value => value > 4)
)

result$.subscribe(console.log)