javascript / expert
Snippet
Eigene Iteratoren mit Symbol.iterator
Das Iterationsprotokoll ermöglicht es Objekten, ihr eigenes Iterationsverhalten zu definieren. Die Verwendung von Generatorfunktionen innerhalb von Symbol.iterator erlaubt Lazy Evaluation, was essenziell für die Verarbeitung potenziell unendlicher oder großer Datensätze in Next.js ist, ohne im Vorfeld übermäßig viel Speicher zu verbrauchen.
snippet.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class DataRange {constructor(private start: number, private end: number) {}*[Symbol.iterator]() {for (let i = this.start; i <= this.end; i++) {yield i;}}}const range = new DataRange(1, 1000);for (const num of range) {if (num > 5) break;console.log(num);}
nextjs
Erklärung
1
*[Symbol.iterator]() { ... }
Definiert eine Generatorfunktion als Standard-Iterator für die Klasse.
2
yield i;
Erzeugt den nächsten Wert in der Sequenz bei Bedarf und pausiert die Ausführung, bis er erneut angefordert wird.
3
for (const num of range) { ... }
Konsumiert den benutzerdefinierten Iterator über die Standard-Schleifensyntax.