首頁 > web前端 > js教程 > 主體

如何使用 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 的承諾。但是,隨後對 results.forEach 的呼叫可能會導致混亂。此函數會觸發每個元素的回調,從而產生一個未定義值的陣列。

正確的方法是使用 Promise.all 兩次。第一個實例從 URL 中取得回應,而第二個實例將回應轉換為文字並傳回這些文字的陣列。

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!