0 Tage Serie
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
javascript
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.