在异步函数中将数据从 foreach 推送到其中后显示空数组
showing empty array in after pushing data from foreach into it in asynchronous function
我是 async/await 的新手。当我打印一个数组时 console.log 显示一个空数组 [] 但在循环内, console.log 显示数据。谁能帮我解决我哪里出错了。
commandbody.forEach(async (command) => {
const arrayC = await commandsModel.getbyId(command);
cmdArray.push(arrayC);
});
console.log(cmdArray);
forEach
函数不是 async-aware。您将需要使用一个简单的 for 循环:
for( let i = 0; i < commandbody.length; i++ ) {
let arrayC = await commandsModel.getbyId(command);
cmdArray.push(arrayC);
}
console.log(cmdArray);
如果您的外部函数也被标记为异步,这应该有效。
我是 async/await 的新手。当我打印一个数组时 console.log 显示一个空数组 [] 但在循环内, console.log 显示数据。谁能帮我解决我哪里出错了。
commandbody.forEach(async (command) => {
const arrayC = await commandsModel.getbyId(command);
cmdArray.push(arrayC);
});
console.log(cmdArray);
forEach
函数不是 async-aware。您将需要使用一个简单的 for 循环:
for( let i = 0; i < commandbody.length; i++ ) {
let arrayC = await commandsModel.getbyId(command);
cmdArray.push(arrayC);
}
console.log(cmdArray);
如果您的外部函数也被标记为异步,这应该有效。