javascript / expert
Snippet
Generator-basierte Datentransformations-Pipelines
Generatoren ermöglichen die verzögerte Auswertung (Lazy Evaluation) großer Datensätze. Anstatt für jede Operation Zwischen-Arrays zu erstellen, wird jedes Element einzeln durch die gesamte Pipeline verarbeitet, was den Speicherbedarf bei intensiven Datenverarbeitungsaufgaben erheblich reduziert.
snippet.js
1
2
3
4
5
6
7
8
9
10
11
12
13
function* filter<T>(items: Iterable<T>, predicate: (i: T) => boolean) {for (const item of items) {if (predicate(item)) yield item;}}function* map<T, U>(items: Iterable<T>, fn: (i: T) => U) {for (const item of items) {yield fn(item);}}const pipeline = map(filter([1, 2, 3, 4], x => x % 2 === 0), x => x * 10);
nextjs
Erklärung
1
function* filter<T>(items: Iterable<T>...
Definiert eine Generator-Funktion, die Werte bei Bedarf erzeugt.
2
yield item;
Pausiert den Generator und gibt den aktuellen Wert an den Verbraucher zurück.
3
const pipeline = map(filter(...));
Kombiniert verzögerte Operationen, ohne sie auszuführen, bis die Pipeline iteriert wird.