对于buffercount运算符,它将从调用它的可观察对象收集值,并在给buffercount的缓冲区大小匹配时发出相同的值。它使用2个参数buffersize,第二个参数是startBufferEvery,即如果给定的话,它将从startBufferEvery计数新值,否则将从源的开始处计数。
语法
bufferCount(bufferSize: number, startBufferEvery: number = null): Observable
参量
bufferSize-要发出的缓冲区的大小。
返回值
将返回一个observable,它将具有一个缓冲值数组。
我们将看到一个bufferCount()的工作示例
例子1
import { fromEvent } from 'rxjs'; import { bufferCount } from 'rxjs/operators'; let btn = document.getElementById("btnclick"); let btn_clicks = fromEvent(btn, 'click'); let buffered_array = btn_clicks.pipe(bufferCount(4)); buffered_array.subscribe(arr => console.log(arr));
在上面的示例中,bufferSize为4。因此,在计数4次单击之后,将单击事件数组收集到一个数组中并显示出来。由于我们没有给startBufferEvery赋值,因此将从一开始就计算值。
输出量
例子2
import { fromEvent } from 'rxjs'; import { bufferCount } from 'rxjs/operators'; let btn = document.getElementById("btnclick"); let btn_clicks = fromEvent(btn, 'click'); let buffered_array = btn_clicks.pipe(bufferCount(4, 2)); buffered_array.subscribe(arr => console.log(arr));
在此示例中,我们添加了startBufferEvery,因此每2次单击后,它将显示4个单击事件的缓冲区计数。
输出
作者:terry,如若转载,请注明出处:https://www.web176.com/rxjs/1826.html