javascript / intermediate
Snippet
Effizientes Laden von Ressourcen mit Async-Generatoren
Async-Generatoren ermöglichen es, über Daten zu iterieren, die asynchron abgerufen werden. Dieser 'Lazy Loading'-Ansatz spart Speicherplatz, da während der Verarbeitung jeweils nur eine Seite von Daten im Speicher gehalten wird.
snippet.js
1
2
3
4
5
6
7
8
9
10
11
12
13
async function* fetchPages(limit) {let page = 1;while (page <= limit) {const response = await fetch(`https://api.example.com/items?page=${page}`);const data = await response.json();yield data.items;page++;}}for await (const items of fetchPages(3)) {console.log('Processed batch of size:', items.length);}
nodejs
Erklärung
1
async function* fetchPages
Deklariert eine asynchrone Generator-Funktion.
2
yield data.items
Unterbricht die Ausführung und gibt das aktuelle Batch an den Aufrufer zurück.
3
for await (const items of ...)
Iteriert nacheinander über jeden per yield zurückgegebenen, in ein Promise gewickelten Wert.