bufferTime

Acumula valores del Observable fuente durante un periodo de tiempo

Signatura

Firma

bufferTime<T>(bufferTimeSpan: number): OperatorFunction<T, T[]>

Parámetros

Retorna

OperatorFunction<T, T[]>: Un Observable de arrays de valores almacenados.

Descripción

Almacena valores en un array, y emite esos arrays periódicamente en el tiempo.

Diagrama de canicas del operador bufferTime

Acumula valores de la fuente durante un periodo de tiempo determinado por bufferTimeSpan. Si no se proporciona el argumento opcional bufferCreationInterval, se emitirá y reseteará el búfer cada bufferTimeSpan milisegundos. En el caso de que sí se proporcione, bufferTime abrirá y el búfer cada bufferCreationInterval milisegundos y lo cerrará (emitiendo y reseteándolo) cada bufferTimeSpan milisegundos. Cuando se proporcione el argumento opcional maxBufferSize, el búfer se cerrará o cada buffertimeSpan milisegundos o cuando alcance el tamaño especificado por maxBufferSize.

Ejemplos

Almacenar valores en un array durante un periodo de 5 segundos y emitir el array

StackBlitz

import { bufferTime } from "rxjs/operators";
import { interval } from "rxjs";

const number$ = interval(1000);

number$.pipe(bufferTime(5000)).subscribe(console.log);
// Salida: [0, 1, 2, 3], [4, 5, 6, 7, 8]...

Ejemplos de la documentación oficial

Cada segundo, emitir un array de eventos click

import { fromEvent } from "rxjs";
import { bufferTime } from "rxjs/operators";

const clicks = fromEvent(document, "click");
const buffered = clicks.pipe(bufferTime(1000));
buffered.subscribe((x) => console.log(x));

Cada 5 segundos, emitir los eventos click de los siguientes 2 segundos

import { fromEvent } from "rxjs";
import { bufferTime } from "rxjs/operators";

const clicks = fromEvent(document, "click");
const buffered = clicks.pipe(bufferTime(2000, 5000));
buffered.subscribe((x) => console.log(x));
Sobrecargas

Firma

bufferTime(bufferTimeSpan: number, scheduler?: SchedulerLike): OperatorFunction<T, T[]>

Parámetros

Retorna

OperatorFunction<T, T[]>

Firma

bufferTime(bufferTimeSpan: number, bufferCreationInterval: number, scheduler?: SchedulerLike): OperatorFunction<T, T[]>

Parámetros

Retorna

OperatorFunction<T, T[]>

Firma

bufferTime(bufferTimeSpan: number, bufferCreationInterval: number, maxBufferSize: number, scheduler?: SchedulerLike): OperatorFunction<T, T[]>

Parámetros

Retorna

OperatorFunction<T, T[]>

Recursos adicionales

Source code

Documentación oficial en inglés

Last updated