rxjs里scan operators的用法

59 阅读1分钟

Applies an accumulator function over the source Observable, and returns each intermediate result, with an optional seed value.

在这里插入图片描述

类似reduce的工作原理。
看个例子:统计鼠标点击屏幕的次数:

const clicks = fromEvent(document, 'click');
const ones = clicks.pipe(mapTo(1));
const seed = 0;
const count = ones.pipe(scan((acc, one) => acc + one, seed));
count.subscribe(x => console.log(x));

测试结果:

在这里插入图片描述