异步函数中的同步fetch(),并在使用JavaScript完成所有操作后返回
我正在编写一个函数,其中我希望异步拍摄2次抓取,但是,我会等到所有抓取完成后,函数才会返回 如果我将异步函数中的同步fetch(),并在使用JavaScript完成所有操作后返回,javascript,promise,Javascript,Promise,我正在编写一个函数,其中我希望异步拍摄2次抓取,但是,我会等到所有抓取完成后,函数才会返回 如果我将await放在每个fetch()的前面,则这两个回迁将按顺序发出,但如果我没有await,则函数将在所有两个回迁完成之前返回 我想知道是否有一个标准的方法可以很好地完成这个功能。以下是我的示例代码: async function sendRequest() { fetch(url1); fetch(url2); return something; } 使用所有承诺。它将异步运行所有
await
放在每个fetch()
的前面,则这两个回迁将按顺序发出,但如果我没有await
,则函数将在所有两个回迁完成之前返回
我想知道是否有一个标准的方法可以很好地完成这个功能。以下是我的示例代码:
async function sendRequest() {
fetch(url1);
fetch(url2);
return something;
}
使用所有承诺。它将异步运行所有承诺,并等待所有承诺完成
async function sendRequest() {
try {
let result = await Promise.all([
fetch(url1);
fetch(url2);
])
} catch(err) {
console.log(err); // TypeError: failed to fetch
}
console.log(result);
return something;
}
注意:如果只有一个承诺失败,那么每个其他承诺也会失败它应该用try…catch块或提供catch分支到hand错误来包装。