Problème étrange avec les Promesses JavaScript et les boucles for...of
Problème étrange avec les Promesses JavaScript et les boucles for...of
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
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`.
Mac pour bosser, PC pour jouer
Re: Problème étrange avec les Promesses JavaScript et les boucles for...of
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 !
```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
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
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
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.
Mac pour bosser, PC pour jouer
Re: Problème étrange avec les Promesses JavaScript et les boucles for...of
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.