У меня есть этот код:
let result = programBenef.map(async item => {
const beneficiary = await Beneficiary.findById(item.beneficiary_id);
delete item.beneficiary_id;
return {
...item,
...beneficiary
};
});
result = await Promise.all(result);
console.log(result);
, и когда я делаю console.log (результат), у меня есть этот результат:
Promise {
{ '$__': [InternalCache],
isNew: false,
errors: undefined,
_doc: [Object],
'$init': true } },
Promise {
{ '$__': [InternalCache],
isNew: false,
errors: undefined,
_doc: [Object],
'$init': true } }
Почему он не возвращает фактический результат, И как ее решить?
РЕДАКТИРОВАТЬ 1: Это целая функция:
router.get("/getProgramDistr/:id", auth, async (req, res) => {
if (req.user.roles === 1) return res.status(403);
if (!req.params.id) return res.status(400);
const admin_id = req.user.father_id || req.user._id;
const programDistr = await ProgramDistributor.find({
admin_id,
program_id: req.params.id
});
if (!programDistr) return res.status(404);
let result = await programDistr.map(async item => {
const beneficiary = await Distributor.findById(item.distributor_id);
delete item.distributor_id;
return {
...item,
...beneficiary
};
});
result = await Promise.all(result);
// console.log(result, "this is the result");
return res.send(result);
});
Я пытался использовать for loop
вместо карты и выдвигать обещания в массивзатем позвоните Promise.all(array)
и получите тот же результат.