Array.fromAsync()
JavaScript 🟡 MidDéfinition
Méthode statique (Stage 4, listée par TC39 pour ES2026) qui construit un tableau à partir d'un itérable asynchrone, d'un itérable synchrone de promesses ou d'un objet array-like, et renvoie une promesse du tableau. Chaque valeur est attendue séquentiellement, à la différence de Promise.all qui lance tout en parallèle. Largement disponible dans les navigateurs depuis janvier 2024.
Analogie
Ramasser les lettres d'une boîte au fil de leur arrivée, dans l'ordre, jusqu'à la dernière.
Exemple de code
async function* pages() {
for (let p = 1; p <= 3; p++) yield await fetchPage(p);
}
const tout = await Array.fromAsync(pages()); // [page1, page2, page3]
// Avec fonction de transformation (attendue elle aussi)
const tailles = await Array.fromAsync([1, 2, 3], async n => n * 2);
// Séquentiel : 5 promesses de 100 ms ≈ 500 ms (Promise.all ≈ 100 ms)
Cas d'usage
Collecter un flux paginé, un ReadableStream ou un curseur base de données en tableau.
Anti-pattern
L'utiliser pour paralléliser des appels indépendants : c'est séquentiel, Promise.all est fait pour ça.
Termes liés
Sources
Fiche mise à jour le 2026-09-27