Skip to content

bufferCount - Verzamel waarden op gespecificeerd aantal

De bufferCount operator groepeert een gespecificeerd aantal uitgezonden waarden samen en voert ze uit als een array. Dit is nuttig voor batchverwerking waar u waarden wilt scheiden op aantal.

🔰 Basissyntax en gebruik

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

// Geef waarden elke 100ms uit
const source$ = interval(100);

source$.pipe(
  bufferCount(5)
).subscribe(buffer => {
  console.log('Waarden elke 5:', buffer);
});

// Output:
// Waarden elke 5: [0, 1, 2, 3, 4]
// Waarden elke 5: [5, 6, 7, 8, 9]
// ...
  • Voert een array van 5 waarden per keer uit.
  • Het is uniek doordat het op een aantal basis groepeert, niet op een tijdbasis.

🌐 RxJS Officiële Documentatie - bufferCount

💡 Typische gebruikspatronen

  • Splits en verzend datapakketten
  • Batch opslaan of batchverwerking op een bepaald aantal
  • Aggregatie van invoergebeurtenissen op een bepaald aantal voorkomens

🧠 Praktisch codevoorbeeld (met UI)

Dit is een voorbeeld van het weergeven van een samenvatting van toetsenbordaanslagen elke 5 aanslagen.

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

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

// Toetsinvoer gebeurtenisstream
fromEvent<KeyboardEvent>(document, 'keydown').pipe(
  map(event => event.key),
  bufferCount(5)
).subscribe(keys => {
  const message = `5 invoer: ${keys.join(', ')}`;
  console.log(message);
  output.textContent = message;
});
  • Elke keer dat een toets vijf keer wordt ingedrukt, worden die vijf aanslagen samen weergegeven.
  • U kunt het aggregatieproces op basis van het aantal ervaren.

Uitgebracht onder de CC-BY-4.0 licentie.