我尝试遍历一个数组,并为每个id更新模型,然后将结果推入另一个数组
这是我的代码:
async function getSortedAnimals() {
var i = 0;
var sortedAnimals = [];
ids.forEch(async (id) => {
i++;
const animal = await this.animalModel.findOneAndUpdate(
{ _id: id },
{
$set: {
order: i,
},
},
);
sortedAnimals.push(animal);
});
console.log(sortedAnimals);
return sortedAnimals;
} //function
当我的控制台日志,数组是空的,我不知道为什么!这就像它不等待循环结束。
有什么建议吗?
2条答案
按热度按时间ovfsdjhp1#
forEach
构造中忽略了结果承诺。您可以将其替换为for...of
,如下所示:rggaifut2#
因为在将对象推送到数组之前要记录数组
迭代是异步的,但不是全局循环,但是您可以使用
for await