Page 1 sur 1
Problème étrange avec les Promesses JavaScript et les boucles for...of
Publié : dim. mars 30, 2025 1:42 am
par la_geek
Je me tape un comportement bizarre : quand j'utilise `await` dans une boucle `for...of`, certaines promesses se resolvent dans le désordre. Pourtant j'ai bien mis async/await partout...
Re: Problème étrange avec les Promesses JavaScript et les boucles for...of
Publié : dim. mars 30, 2025 3:42 am
par titi
Balance ton code stp. T'es sûr que tes promesses sont bien créées dans la boucle ? Un classique c'est le problème de closure avec `var` au lieu de `let`.
Re: Problème étrange avec les Promesses JavaScript et les boucles for...of
Publié : dim. mars 30, 2025 4:42 am
par la_geek
Voici un extrait :
```js
for (const item of items) {
const res = await fetchAPI(item.id); // Parfois res arrive dans le désordre
console.log(res);
}
```
J'utilise bien const partout !
Re: Problème étrange avec les Promesses JavaScript et les boucles for...of
Publié : dim. mars 30, 2025 8:42 am
par sarah
Ah ! C'est normal si fetchAPI fait des requêtes HTTP. Le réseau c'est désordonné par nature. Si tu veux l'ordre garanti, faut stocker dans un tableau et await Promise.all() APRES la boucle.
Re: Problème étrange avec les Promesses JavaScript et les boucles for...of
Publié : dim. mars 30, 2025 11:42 am
par la_geek
Mais du coup avec Promise.all() je perds l'exécution séquentielle non ? J'ai besoin que item2 soit traité APRÈS item1 à cause de contraintes métier.
Re: Problème étrange avec les Promesses JavaScript et les boucles for...of
Publié : dim. mars 30, 2025 5:42 pm
par titi
Dans ce cas ton code est correct, mais vérifie que fetchAPI ne fait pas de cache bizarre. Essaye avec un setTimeout random pour confirmer que c'est bien le réseau le coupable.
Re: Problème étrange avec les Promesses JavaScript et les boucles for...of
Publié : dim. mars 30, 2025 10:42 pm
par le_zed38
Autre piste : ton API renvoie des headers Cache-Control ? J'ai déjà eu des surprises avec le cache navigateur qui foutait le bordel dans l'ordre des requêtes.