Considérez ce scénario : vous disposez d'un tableau d'URL et souhaitez obtenir un objet avec un tableau d'URL. texte correspondant à partir des fichiers à ces URL. La fonction Promise.all fournit une approche pratique pour gérer cette tâche.
Initialement, le code que vous avez essayé utilisait Promise.all pour récupérer les promesses de chaque URL. Cependant, l'appel ultérieur à results.forEach peut prêter à confusion. Cette fonction déclenche un rappel pour chaque élément, résultant en un tableau de valeurs non définies.
L'approche correcte implique d'utiliser Promise.all deux fois. La première instance récupère les réponses des URL, tandis que la seconde convertit les réponses en texte et renvoie un tableau de ces textes.
Promise.all(urls.map(u=>fetch(u))).then(responses => Promise.all(responses.map(res => res.text())) ).then(texts => { … })
Vous pouvez également simplifier le code en obtenant directement le texte de la réponse. :
Promise.all(urls.map(url => fetch(url).then(resp => resp.text()) )).then(texts => { … })
Avec la syntaxe async/await, le code devient encore plus concis :
const texts = await Promise.all(urls.map(async url => { const resp = await fetch(url); return resp.text(); }));
En employant cette approche, vous pouvez récupérer efficacement un tableau d'URL et obtenir un objet avec les valeurs de texte correspondantes.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!