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

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

Susan Sarandon
リリース: 2024-10-26 16:16:30
オリジナル
858 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート