AsyncIterator

JavaScript 🔴 Senior

Definition

Protocole pour iterer sur des sequences asynchrones. L'objet implemente [Symbol.asyncIterator]() et next() retourne une Promise de {value, done}. Utilisable avec for await...of.

Analogie

Un podcast en streaming : chaque episode arrive de maniere asynchrone, et tu les ecoutes un par un.

Exemple de code

async function* fetchPages(url) {
  let page = 1;
  while (true) {
    const data = await fetch(`${url}?p=${page++}`);
    const json = await data.json();
    if (!json.length) return;
    yield json;
  }
}
for await (const page of fetchPages('/api')) {}

Cas d'usage

Pagination API, lecture de streams, traitement de donnees en flux.

#core#async#avance