在异步函数中使用 Promise.all 或 Promise.race 来处理多个 Promise 并等待它们全部完成或只等待其中一个完成。以下是一个示例:
async function fetchData(id) {
const dataPromise = fetch(`/api/data/${id}`);
const metadataPromise = fetch(`/api/metadata/${id}`);
const [dataResponse, metadataResponse] = await Promise.all([dataPromise, metadataPromise]);
const data = await dataResponse.json();
const metadata = await metadataResponse.json();
console.log(data, metadata);
}
在这个例子中,我们向两个不同的 API 端点(data 和 metadata)分别发送请求,并使用 Promise.all 等待两个请求完成。然后,我们使用 await 语法分别处理两个响应并将其转换为 JSON 数据。最后,我们将两个变量输出到控制台以进行调试。
这个解决方法可以确保我们在异步函数中正确地使用 await 语法,以便代码可以按预期工作。