Maison > interface Web > js tutoriel > le corps du texte

Comment récupérer efficacement du texte à partir d'un tableau d'URL à l'aide de Promise.all ?

Susan Sarandon
Libérer: 2024-10-27 15:10:29
original
1033 Les gens l'ont consulté

How to Efficiently Retrieve Text from an Array of URLs Using Promise.all?

Comment exploiter Promise.all pour récupérer un tableau d'URL

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 => {
    …
})
Copier après la connexion

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 => {
    …
})
Copier après la connexion

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();
}));
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal