Skip to content

bufferCount - Werte in angegebener Anzahl zusammenfassen

Der bufferCount-Operator fasst emittierte Werte in angegebener Anzahl zusammen und gibt sie als Array aus. Praktisch für Batch-Verarbeitung nach Anzahl der Werte.

🔰 Grundlegende Syntax und Verwendung

ts
import { interval } from 'rxjs';
import { bufferCount } from 'rxjs';

// Werte alle 100ms emittieren
const source$ = interval(100);

source$.pipe(
  bufferCount(5)
).subscribe(buffer => {
  console.log('Werte alle 5 Stück:', buffer);
});

// Ausgabe:
// Werte alle 5 Stück: [0, 1, 2, 3, 4]
// Werte alle 5 Stück: [5, 6, 7, 8, 9]
// ...
  • Fasst 5 Werte zusammen und gibt sie als Array aus.
  • Das Merkmal ist die Zusammenfassung anzahlbasiert, nicht zeitbasiert.

🌐 RxJS Offizielle Dokumentation - bufferCount

💡 Typische Anwendungsmuster

  • Aufteilung und Übertragung von Datenpaketen
  • Batch-Speicherung oder -Verarbeitung nach fester Anzahl
  • Aggregation von Eingabeereignissen nach fester Anzahl

🧠 Praktisches Codebeispiel (mit UI)

Beispiel, das Tastatureingaben alle 5 Mal zusammenfasst und anzeigt.

ts
import { fromEvent } from 'rxjs';
import { map, bufferCount } from 'rxjs';

// Ausgabebereich erstellen
const output = document.createElement('div');
output.style.marginTop = '10px';
document.body.appendChild(output);

// Tastatureingabe-Ereignisstrom
fromEvent<KeyboardEvent>(document, 'keydown').pipe(
  map(event => event.key),
  bufferCount(5)
).subscribe(keys => {
  const message = `5 Eingaben: ${keys.join(', ')}`;
  console.log(message);
  output.textContent = message;
});
  • Bei jedem 5. Tastendruck werden diese 5 Tasten zusammen angezeigt.
  • Ermöglicht Erfahrung mit anzahlbasierter Aggregationsverarbeitung.

Veröffentlicht unter CC-BY-4.0-Lizenz.