在地图中设置多维数组时,如何解决猫鼬findOne返回空的问题?
我已经尝试使用回调函数,并且听说了promises。我尝试实现两者,但遇到了困难。当我输出用户的控制台时,它给了我用户对象,但是在返回model.reviews之后,它没有定义。
if(!_.isEmpty(model.reviews)){
let result = model.reviews.map(async (item, index)=>{
console.log('item', item)
console.log('model', model)
let user = await User.findOne({ _id: item.user_id }).lean().exec((error, model)=>{ if (error || !model) { return error } else { return model } })
console.log('user', user)
model.reviews[index].user = user
})
}
return res.status(200).json({ status: 'success', response: 200, message: 'Found single model.', data: model });
}
我希望获得model.reviews [index] .user = USER,但是在返回的model.reviews中未定义model.reviews [index] .user。
答案 0 :(得分:0)
let result = await Promise.all(model.reviews.map(async (item, index)=>{
console.log('item', item)
console.log('model', model)
let user = await User.findOne({ _id: item.user_id }, function (error, user){
if (error || !user) { return error }
else {
return user
}
})
model.reviews[index].user = user
}))