Problème de gestion d'état avec Async/Await dans une boucle

Pour toutes les discussions javascript, jQuery et autres frameworks
Répondre
tristanbailly83
Messages : 1
Enregistré le : 18 juin 2025, 06:43
Contact :

Problème de gestion d'état avec Async/Await dans une boucle

Message par tristanbailly83 » 22 juil. 2025, 20:54

Bonjour la communauté,

Je suis en train d'apprendre les subtilités des fonctions asynchrones et je bute sur un comportement inattendu. Comme expliqué dans la documentation MDN sur async/await ( https://developer.mozilla.org/en-US/doc ... _function ), j'ai compris que await pause l'exécution jusqu'à la résolution de la promesse. Pourtant, mon implémentation a un bug persistant :

javascript
async function processUrls(urls) {
const results = [];

for (const url of urls) {
const response = await fetch(url); // Attente effective
results.push(await response.json()); // Problème : résultats partiels
}

return results; // Retourne parfois un tableau vide
}
Ce qui me laisse perplexe :

La boucle s'exécute bien en séquentiel (vérifié avec des console.log)

Aucune erreur n'est remontée, mais results est inconsistante

Le même code fonctionne avec Promise.all, mais je dois absolument éviter le parallélisme

Approches testées :

L'initialisation du tableau dans différents scopes

L'utilisation de try/catch autour de chaque await

Une version avec .reduce() comme suggéré sur MDN, mais trop verbeuse

Est-ce que certains d'entre vous ont déjà résolu ce cas de figure ? Je suspecte un problème de contexte d'exécution, mais je ne trouve pas de piste claire dans la doc.

Merci pour vos lumières !

Répondre