gpt4 book ai didi

javascript - 在 forEach 循环中调用服务并在继续之前等待它完成

转载 作者:行者123 更新时间:2023-11-30 09:12:29 24 4
gpt4 key购买 nike

我想在执行下一个代码块之前获取嵌套在 forEach 循环中的服务调用的结果

我试过使用普通的 for 循环,它有效...但是 ESLINT 提示...那么理想的解决方案是什么?

const people = []

const fetchPeople = async () => {
peopleIds.forEach(personId => {
people.push(restApi.getPersonById(personId))
})
}

await fetchPeople()
logger.error(`people should be populated : ${JSON.stringify(people)}`)

我希望在 forEach 结束时填充人员,以便我可以在下一个函数中使用结果。

其实人不多

最佳答案

最简单的方法是使用 Promise.all() 和 array.map()

const people = await Promise.all(peopleIds.map(restApi.getPersonById));
logger.error(`people should be populated : ${JSON.stringify(people)}`)

Array.map() 将为每个 id 创建一个 promise,Promise.all 将等待所有这些并输出它们的异步返回值的数组。

关于javascript - 在 forEach 循环中调用服务并在继续之前等待它完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57561270/

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