【发布时间】:2022-01-16 03:39:49
【问题描述】:
我的代码(打字稿)有问题:
async getAllServers(@Res() response) {
const servers = await this.serverService.getAllServers();
let bot = []
servers.map(async server => {
console.log(server.id)
bot.push(await this.serverService.getInfo(server.id));
console.log(bot)
})
return response.status(HttpStatus.OK).json({
bot,
servers
})
}
这个函数需要返回 2 个数组,但是第二个数组(bot)总是空的。
这是因为 return 在循环之前执行。
循环完成后如何执行返回?
在此先感谢,抱歉英语不好。
【问题讨论】:
-
你有点滥用
map,因为你忽略了返回值。但是您需要返回值才能等待异步函数返回的 Promises。
标签: javascript arrays loops return