ホームページ  >  記事  >  ウェブフロントエンド  >  Promise.all を使用して URL の配列からテキストを効率的に取得する方法

Promise.all を使用して URL の配列からテキストを効率的に取得する方法

Susan Sarandon
Susan Sarandonオリジナル
2024-10-27 15:10:29939ブラウズ

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

Promise.all を利用して URL の配列を取得する方法

次のシナリオを考えてみましょう: URL の配列があり、次の配列を持つオブジェクトを取得したいとします。これらの URL にあるファイルからの対応するテキスト。 Promise.all 関数は、このタスクを処理するための便利なアプローチを提供します。

最初に、試行したコードは Promise.all を使用して各 URL の Promise を取得しました。ただし、後続の results.forEach の呼び出しは混乱を引き起こす可能性があります。この関数は各要素のコールバックをトリガーし、その結果、未定義の値の配列が生成されます。

正しいアプローチには、Promise.all を 2 回使用することが含まれます。最初のインスタンスは URL から応答を取得し、2 番目のインスタンスは応答をテキストに変換し、これらのテキストの配列を返します。

Promise.all(urls.map(u=>fetch(u))).then(responses =>
    Promise.all(responses.map(res => res.text()))
).then(texts => {
    …
})

または、応答からテキストを直接取得してコードを簡素化することもできます。 :

Promise.all(urls.map(url =>
    fetch(url).then(resp => resp.text())
)).then(texts => {
    …
})

async/await 構文を使用すると、コードはさらに簡潔になります:

const texts = await Promise.all(urls.map(async url => {
  const resp = await fetch(url);
  return resp.text();
}));

このアプローチを採用すると、URL の配列を効果的にフェッチし、次のオブジェクトを取得できます。対応するテキスト値。

以上がPromise.all を使用して URL の配列からテキストを効率的に取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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