rxjs是一个JavaScript库,可实现异步和基于事件的程序的创建。主要类型是Observable
,提供了一套功能和运算符,以使与数据通过的数据更容易。该系列将详细介绍这些操作员(以及一些独立功能),并提供其使用的示例。
在这篇文章中,我们将覆盖bufferCount
操作员。
它有什么作用?
bufferCount
操作员用于将一定数量的值批量合并在一起。当我们将bufferCount
添加到管道中时,我们将其传递给指示批处理的值数量。一旦收到了足够的值,bufferCount
将将所有值组合到数组中,并通过管道发送它们。
例子
import { bufferCount, interval } from 'rxjs';
interval(1000)
.pipe(bufferCount(10))
.subscribe(x => {
console.log(x);
});
我们使用interval
每秒为我们提供每秒增加数字。当我们添加bufferCount
时,我们告诉它等待10个值,因此每次从interval
收到10个值时,阵列都会从管道下发送。运行此功能将打印:
[
0, 1, 2, 3, 4,
5, 6, 7, 8, 9
]
[
10, 11, 12, 13, 14,
15, 16, 17, 18, 19
]
如果原始可观察到完成缓冲区将立即通过管道收集的任何值。
此示例的源代码可在GitHub上获得: