过滤与时间

RxJS distinctUntilChanged

只和上一个已输出值比较,连续重复值会被忽略。

distinctUntilChanged()

时间线如何变化

  1. 1
    首值总会输出

    第一个 1 成为当前比较基准。

  2. 2
    连续的 1 被忽略

    新值与上一个已输出值相同。

  3. 3
    2 与 1 不同

    2 输出并成为新的比较基准。

  4. 4
    1 可以再次出现

    它只需要与紧邻的上一个输出值不同。

  5. 5
    最后的 3 被忽略

    最终输出序列为 1、2、1、3。

受支持的示例代码

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

import { of, distinctUntilChanged } from 'rxjs'

of(1, 1, 2, 2, 1, 3, 3).pipe(
  distinctUntilChanged()
).subscribe(console.log)