我试图遍历此数组并将用户对象附加到其中的每个对象。在将JSON返回给客户端之前,如何等待它们完成?
Match.find()
.or([{ user_id: req.user._id }, { second_user_id: req.user._id }])
.exec((err, result) => {
if (err) {
return res.sendStatus(500);
}
result.map(async match => {
match.user = await User.findById(req.user._id).exec();
});
return res.json({ matches: result });
});
在这种情况下,在Mongoose有机会解决findById查询之前,将数组返回给客户端。
答案 0 :(得分:1)
尝试一下,让我知道如何进行:
Match.find()
.or([{ user_id: req.user._id }, { second_user_id: req.user._id }])
.exec(async(err, result) => {
if (err) {
return res.sendStatus(500);
}
const results = await Promise.all(result.map(async match => {
match.user = await User.findById(req.user._id).exec();
}));
return res.json({ matches: results });
});