RxJS scan
在源 Observable 上应用累加器函数,并返回每个中间结果以及可选的seed值。
scan<T, R>(accumulator: (acc: R, value: T, index: number) => R, seed?: T | R): OperatorFunction
<T, R>
参量
累加器 | 在每个源值上调用累加器函数。 |
---|---|
种子 | 可选的。默认值为undefined 。初始累积值。 |
returns
OperatorFunction<T, R>
:可观察到的累积值。
描述
就像reduce
,但是只要源发出一个值,就发出电流累积。
使用累加器函数将源上发出的所有值合并在一起,该函数知道如何将新的源值结合到过去的累加中。与相似 reduce
,但发出中间累积。
返回一个 Observable,它将一个指定的 accumulator
函数应用于源 Observable 发出的每个项目。如果 seed
指定了一个值,则该值将用作累加器的初始值。如果未指定种子值,则将源的第一项用作seed。
例
计算点击事件的数量
import { fromEvent } from 'rxjs';
import { scan, mapTo } from 'rxjs/operators';
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));
超载
scan(accumulator: (acc: R, value: T, index: number) => R, seed: R): OperatorFunction<T, R>
参量 | 类型 |
---|---|
累加器 | 类型:(acc: R, value: T, index: number) => R |
seed | 类型:R |
returnsOperatorFunction<T, R>
scan(accumulator: (acc: T, value: T, index: number) => T, seed?: T): MonoTypeOperatorFunction<T>
参量 | 类型 |
---|---|
累加器 | 类型:(acc: T, value: T, index: number) => T |
seed | 可选的。默认值为undefined 类型:T |
returnsMonoTypeOperatorFunction<T>
scan(accumulator: (acc: R, value: T, index: number) => R): OperatorFunction<T, R>
参量 | 类型 |
---|---|
累加器 | 类型:(acc: R, value: T, index: number) => R |
returnsOperatorFunction<T, R>
更多建议: