试图等待循环



我正试图从数据库中获取数据。我有一个数组,其中存在id集合,我试图从数据库获取每个id的数据,然后发送到客户端,如果尝试这样的操作:-

router.get('/getcart1', async (req, res) => {
const email = req.body.email;`enter code here`
const data = await cart1.find({ email: email });
const id = data[0].id;
let details = await id.map(async (e) => {
console.log('start');
console.log(e);
let data = await books.find({ _id: e });
console.log('end');
return data;
});
res.json({ data: details });
});

执行是开始e开始e结束ans当我们发送数据细节时,它显示空对象,我想要所有细节。在一个循环中,我有数据,但在它之外显示空对象

您正试图等待一个Promises数组,但这不起作用,您将需要一个围绕此的Promise.all

let details = await Promise.all(id.map(async (e) => {
console.log('start');
console.log(e);
let data = await books.find({ _id: e });
console.log('end');
return data;
}));

最新更新