ホームページ  >  記事  >  ウェブフロントエンド  >  Promise.all を使用して URL の配列からテキスト データを取得して解析するにはどうすればよいですか?

Promise.all を使用して URL の配列からテキスト データを取得して解析するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-10-26 16:16:30721ブラウズ

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

Promise.all を使用した URL の配列の取得

Promise.all を利用して、一連の URL からテキスト データの配列を取得するにはは適切なアプローチです。このタスクを効果的に実行する方法は次のとおりです:

URL 文字列の配列があるとします:

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

必要な出力はテキスト コンテンツの配列です:

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

Promise.all を使用すると、複数の非同期操作を連鎖させることができます。この場合、最初に各 URL を取得し、その後各応答からテキストを抽出するために使用できます。

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

上記のコードでは、Promise.all が 2 回使用されています。1 回目はすべての URL の取得を開始するために使用されます。 URL、そして 2 度目に各応答からテキスト コンテンツを取得します。

両方の操作を単一の Promise.all チェーンに結合する別のアプローチは、次のように実現できます。

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

さらに、async/await を使用してこのコードをさらに簡素化できます:

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

これらのアプローチはどちらも Promise.all を効果的に利用して、URL の配列を取得し、関連するテキスト コンテンツを抽出するという望ましい結果を達成します。

以上がPromise.all を使用して URL の配列からテキスト データを取得して解析するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。