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 !
Problème de gestion d'état avec Async/Await dans une boucle
-
- Messages : 1
- Enregistré le : 18 juin 2025, 06:43
- Contact :