RXJS操作员:BufferCount
#javascript #网络开发人员 #rxjs #typescript

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上获得: