亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

JS'await 僅在 Promise.all() 函數中的異步函數中有效

JS'await 僅在 Promise.all() 函數中的異步函數中有效

DIEA 2021-06-09 18:05:45
我正在嘗試使用 Promise.all() 函數對所有請求進行等待,而不是像這樣手動執行所有獲?。簐ar data = await Promise.all([        fetch('https://jsonplaceholder.typicode.com/posts').then((response) => response.json()),        fetch('https://jsonplaceholder.typicode.com/albums').then((response) => response.json()),        fetch('https://jsonplaceholder.typicode.com/users').then((response) => response.json())      ]);我想讓它動態化,像這樣發出 N 個獲取請求:       let promiseList = [];        try {            for (let url of requestUrls) {                promiseList.push(fetch(url).then((response) => response.json()));            }            var data = await Promise.all(promiseList);但我得到這個錯誤Uncaught SyntaxError: await is only valid in async function的await Promise.all()路線,如果我刪除的await,我得到一個Promise {<pending>}和 (index):79 error:TypeError: data is not iterable這是我的完整代碼:https : //jsfiddle.net/ham7g82e/1/從這些提取中獲取數據我缺少什么?
查看完整描述

3 回答

?
皈依舞

TA貢獻1851條經驗 獲得超3個贊

不要使用 await,而是使用 Promise.then


Promise.all(promiseList).then(data => {

  document.getElementById("result").innerHTML = data;

  console.log(data);


  for (var i of data) {

    console.log(`RESPONSE ITEM \n`);

      for (var obj of i) {

        console.log(obj);


      }

  }

});


查看完整回答
反對 回復 2021-06-18
?
慕村225694

TA貢獻1880條經驗 獲得超4個贊

要使用 await,它需要是異步函數的一部分。


async function functionName() {

 //You can use await in here, because you used the async keyword

}


查看完整回答
反對 回復 2021-06-18
?
www說

TA貢獻1775條經驗 獲得超8個贊

如果執行此代碼的函數不是異步的,您可以使用 .then() 從承諾中獲取值。不需要使用等待。



查看完整回答
反對 回復 2021-06-18
  • 3 回答
  • 0 關注
  • 344 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號