Maison  >  Article  >  interface Web  >  Comment récupérer et analyser des données texte à partir d'un tableau d'URL avec Promise.all ?

Comment récupérer et analyser des données texte à partir d'un tableau d'URL avec Promise.all ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-26 16:16:30721parcourir

How to Fetch and Parse Text Data from an Array of URLs with Promise.all?

Récupération d'un tableau d'URL avec Promise.all

Pour récupérer un tableau de données textuelles à partir d'un ensemble d'URL, en utilisant Promise.all est une approche appropriée. Voici comment accomplir efficacement cette tâche :

Supposons que vous disposiez d'un tableau de chaînes d'URL :

<code class="js">var urls = ['1.txt', '2.txt', '3.txt']; // Text files containing "one", "two", "three"</code>

Le résultat souhaité est un tableau de contenu textuel :

<code class="js">var text = ['one', 'two', 'three'];</code>

L'utilisation de Promise.all permet d'enchaîner plusieurs opérations asynchrones. Dans ce cas, il peut être utilisé pour récupérer d'abord chaque URL, puis extraire le texte de chaque réponse :

<code class="js">Promise.all(urls.map(url => fetch(url)))
  .then(responses =>
    Promise.all(responses.map(res => res.text()))
  )
  .then(texts => {
    // ...
  });</code>

Dans le code ci-dessus, Promise.all est utilisé deux fois : une fois pour lancer la récupération de tous URL, et une seconde fois pour obtenir le contenu textuel de chaque réponse.

Une approche alternative, combinant les deux opérations en une seule chaîne Promise.all, peut être réalisée comme suit :

<code class="js">Promise.all(urls.map(url =>
  fetch(url)
    .then(resp => resp.text())
))
.then(texts => {
  // ...
});</code>

De plus, vous pouvez simplifier davantage ce code en utilisant async/await :

<code class="js">const texts = await Promise.all(urls.map(async url => {
  const resp = await fetch(url);
  return resp.text();
}));</code>

Ces deux approches utilisent efficacement Promise.all pour obtenir le résultat souhaité consistant à récupérer un tableau d'URL et à extraire le contenu textuel associé.

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!

Déclaration:
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