我有多个 API 调用要进行,它们通过 API 获取,通过 API 将数据写入 DB,通过另一个 API 将输出发送到前端。
我已经用 await 编写了异步函数,如下所示 -
前 2 个应该一个接一个地运行,但第三个可以独立运行,无需等待前 2 个 fetch 语句完成。
let getToken= await fetch(url_for_getToken);
let getTokenData = await getToken.json();
let writeToDB = await fetch(url_for_writeToDB);
let writeToDBData = await writeToDB.json();
let frontEnd = await fetch(url_for_frontEnd);
let frontEndData = await frontEnd.json();
处理此类多个 fetch 语句的最佳方法是什么?
最佳答案
有很多方法,但最通用的是将每个异步代码路径包装在一个异步函数中。这使您可以根据需要灵活地混合和匹配异步返回值。在您的示例中,您甚至可以使用 async iife 内联代码:
await Promise.all([
(async() => {
let getToken = await fetch(url_for_getToken);
let getTokenData = await getToken.json();
let writeToDB = await fetch(url_for_writeToDB);
let writeToDBData = await writeToDB.json();
})(),
(async() => {
let frontEnd = await fetch(url_for_frontEnd);
let frontEndData = await frontEnd.json();
})()
]);
关于javascript - 如何在异步函数中处理多个等待,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58815415/