0 Tage Serie
javascript / intermediate
Snippet

Benutzerdefinierte Async-Iteratoren für API-Paginierung

Async-Generatoren ermöglichen es Ihnen, benutzerdefinierte Iteratoren zu erstellen, die Werte asynchron produzieren. Die Verwendung von yield* mit einem Array innerhalb der Schleife ermöglicht das Abflachen der paginierten Ergebnisse und bietet eine nahtlose for-await-of-Schleife für den Datenkonsumenten.

snippet.js
javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
async function* fetchUserPages(baseUrl) {
let page = 1;
while (true) {
const response = await fetch(`${baseUrl}?page=${page}`);
const data = await response.json();
if (data.users.length === 0) break;
yield* data.users;
page++;
}
}
// Usage:
for await (const user of fetchUserPages('https://api.example.com/v1')) {
console.log(user.name);
}
nodejs
Erklärung
1
async function* fetchUserPages(baseUrl)
Definiert eine asynchrone Generatorfunktion.
2
yield* data.users;
Delegiert die Iteration an jedes einzelne Element des abgerufenen Benutzer-Arrays.