gpt4 book ai didi

javascript - 如何在异步函数中处理多个等待

转载 作者:行者123 更新时间:2023-12-04 08:46:48 27 4
gpt4 key购买 nike

我有多个 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com