gpt4 book ai didi

javascript - 如何链接异步/等待使用依赖于第一次调用的数据

转载 作者:数据小太阳 更新时间:2023-10-29 05:56:38 24 4
gpt4 key购买 nike

假设我有一个 async/await 调用一个获取所有用户的 API。

async function getUsers() {
const users = await Api.getAllUsers()

return users.map(user => {
return {
id: user.id,
group: 'data depends on subsequent API call',
}
})
}

在返回映射中,我必须执行另一个 API 调用以获取一些应该在同一范围内的数据。

const groupByUser = Api.getGroupByUserId()

我该如何实现?我可以在现有的中放置一个异步/等待吗?我是否创建一个包含所有用户 ID 的数组并以某种方式映射它?我有点不知道下一步该去哪里,任何意见都将不胜感激。

// getUsers() passed into componentDidMount() wrapper

最佳答案

为 map 函数使用 async 函数,然后对该结果使用 Promise.all

async function getUsers() {
const users = await Api.getAllUsers()

return Promise.all(users.map(async (user) => {
return {
id: user.id,
group: await Api.getGroupByUserId(user.id),
}
}))
}

当您使用异步函数映射 时,您实际上得到了一组 promise 。这就是为什么你需要 Promise.all

关于javascript - 如何链接异步/等待使用依赖于第一次调用的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51989718/

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