RxJS bufferCount

2020-10-14 09:49 更新

緩沖源的 Observable 值,直到大小達(dá)到最大值 bufferSize 給定的。

bufferCount<T>(bufferSize: number, startBufferEvery: number = null): OperatorFunction<T, T[]>

參量

緩沖區(qū)大小 發(fā)出的緩沖區(qū)的最大大小。
startBufferEvery 可選的。 默認(rèn)值為 null。  開始新緩沖區(qū)的時間間隔。  例如,如果 startBufferEvery為 2,則將啟動一個新的緩沖區(qū)  來自來源的所有其他值。 一個新的緩沖區(qū)從  默認(rèn)情況下源的開頭。

returns

OperatorFunction<T, T[]>:可觀察到的緩沖值數(shù)組。

描述

收集過去的值作為數(shù)組,并發(fā)出 該數(shù)組僅在其大小達(dá)到時 bufferSize。

bufferCount marble diagram

到 緩沖來自源 Observable 的許多值 bufferSize那時 發(fā)出并清除緩沖區(qū),然后每個緩沖區(qū)啟動一個新緩沖區(qū) startBufferEvery價值觀。 如果 startBufferEvery未提供或 null,然后新緩沖區(qū)將在源開頭立即啟動 當(dāng)每個緩沖區(qū)關(guān)閉并發(fā)出時。

例子

將最后兩個click事件作為數(shù)組發(fā)送

import { fromEvent } from 'rxjs';
import { bufferCount } from 'rxjs/operators';


const clicks = fromEvent(document, 'click');
const buffered = clicks.pipe(bufferCount(2));
buffered.subscribe(x => console.log(x));

每次點擊時,將最后兩個點擊事件作為數(shù)組發(fā)出

import { fromEvent } from 'rxjs';
import { bufferCount } from 'rxjs/operators';


const clicks = fromEvent(document, 'click');
const buffered = clicks.pipe(bufferCount(2, 1));
buffered.subscribe(x => console.log(x));

也可以看看

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號