`await` dans `forEach()`: pourquoi mes données ne sont-elles pas chargées avant le rendu?
Posté : 11 juil. 2026, 10:05
Bonjour à tous, je travaille actuellement sur une application interne de gestion des commandes en Vue 3. Sur la page de détail, je dois récupérer les informations de chaque client à partir de son `customerId` avant d'afficher le tableau. Les requêtes HTTP aboutissent toutes correctement (200 OK) FNF, mais au moment où le composant est rendu, l'objet `customers` est encore vide. J'utilise actuellement le code ci-dessous:
En plaçant un point d'arrêt, je vois bien que les réponses arrivent et que les données sont correctes, mais `renderOrders()` est appelé avant la fin de toutes les requêtes. J'ai repris ce module d'un ancien développeur, donc j'essaie de corriger le problème sans tout réécrire. Est-ce que le problème vient de `forEach()` avec `async/await`? Quelle serait la meilleure façon d'attendre que toutes les requêtes soient terminées avant d'appeler `renderOrders()`? Merci d'avance pour vos conseils.
Code : Tout sélectionner
const customers = {};
orders.forEach(async (order) => {
const response = await fetch(`/api/customers/${order.customerId}`);
customers[order.customerId] = await response.json();
});
renderOrders(orders, customers);