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

Susan Sarandon
リリース: 2024-10-27 15:10:29
オリジナル
938 人が閲覧しました

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!