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!