Bonjour,
Quelque chose m'échappe, lorsque je fait une requête Fetch asynchrone, je suis dans l'attente de recevoir des données.
Ensuite je souhaite manipuler ces données, comme par exemple les ajouter dans une array pour pouvoir travailler dessus de manière globale.
Mais ce qu'il se passe c'est que je travaille sur une array undefined car la promesse ne s'est pas résolu.
Comment faire pour que mon array push les données reçu uniquement lorsqu'elle sont chargés et pas à l'état de promesse ?
J'ai pas mal cherché et cela n'a pas l'air d'être un soucis pour la plupart des développeurs, j'ai peut être raté quelque chose ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 var allData = []; function getOneProduct(product_id){ let data; fetch('http://localhost:3000/api/things/' + product_id) .then(async response => { data = await response.json() .then(data => requestData = data); allData.push(requestData); /* ici je rentre une promise dans mon array, et donc ensuite mon code ne fonctionne pas lorsque je veux travailler sur mon array*/ } )} console.log(allData); /*me retourne une promise, comment faire à partir de là pour demander à mon code de s'exécuter seulement quand les données sont arrivés ?*/
Alors oui biensur je pourrais utiliser un set timeout random de 1 à 2 s, mais quel interêt ? et personne ne télécharge des données à la même vitesse...
Partager