Promise.all / allSettled / race / any

JavaScript 🟡 Mid

Definition

Combinateurs de promesses : all (toutes reussies ou 1 echec), allSettled (toutes terminees), race (la premiere terminee), any (la premiere reussie). Essentiels pour le parallelisme.

Analogie

all = tous les invites doivent arriver pour manger. race = on mange des que le premier arrive. any = on mange des qu'un invite avec le dessert arrive. allSettled = on attend que tout le monde ait repondu, oui ou non.

Exemple de code

const [a, b] = await Promise.all([fetchA(), fetchB()]);
const results = await Promise.allSettled([p1, p2]);
const fastest = await Promise.race([p1, p2]);
const first = await Promise.any([p1, p2]);

Cas d'usage

Paralleliser des appels API independants (all), tolerant aux echecs (allSettled), timeout (race).

Anti-pattern

Utiliser await en serie pour des operations independantes au lieu de Promise.all.

Termes lies

#core#interview#async#performance