javascript - 在异步函数中同时进行 fetch(),并在使用 JavaScript 完成后返回
问题描述
我正在编写一个函数,我希望 2 次提取异步拍摄,但是,我将等到所有提取完成后再函数返回。
如果我放在await
每个前面,fetch()
那么这 2 次提取将按顺序发出,但如果我没有await
,该函数将在所有 2 次提取完成之前返回。
我想知道是否有一种标准方法可以很好地完成此功能。这是我的示例代码:
async function sendRequest() {
fetch(url1);
fetch(url2);
return something;
}
解决方案
全部使用承诺。它将异步运行所有 Promise 并等待所有 Promise 完成。
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;
}
注意:如果只有 1 个 Promise 失败,其他所有 Promise 也会失败
推荐阅读
- powershell - 捕获 PowerShell 工作流程中的错误
- javascript - 为什么谷歌地图 Map() 构造函数有副作用?
- go - 切片自动排序?
- node.js - 如何将所有sql输出数据加载到html表中
- python - 无法访问带有漂亮汤的推文 ID
- java - 我正在做一个 do while 循环,它要求用户输入 ID,但它总是会在用户输入任何内容之前在一个循环之后显示错误消息
- python - 如何避免父母在python多处理中等待孩子?
- php - 使用 DOMDocument 遍历 DOM 的问题
- r - Kmeans:集群大小错误
- assembly - 汇编 - 在函数中传递和检索字符串指针