Я знаю, что многие вопросы обсуждают одну и ту же ошибку, и я видел большинство из них, и они не решили мою проблему.
Я написал этот код:
const userOrganizationGroups = (organizationGroupsList) => {
if (Array.isArray(organizationGroupsList) && organizationGroupsList.length) {
const result = organizationGroupsList.map(async (element) => {
const { organizationId, groupId } = element;
const { Organizations, Groups } = models;
const organization = await Organizations.findOne(
{ _id: organizationId },
{ name: 1, _id: 0 },
);
const group = await Groups.findOne({ _id: groupId });
return Object.assign({}, {
organizationName: organization.name,
group: group.name,
});
});
return result;
}
};
когда я отлаживаю код:
console.log('userOrganizationGroups : ',userOrganizationGroups(list))
Я получил такой результат:
userOrganizationGroups: Promise { <pending> }
Я нашел похожий вопрос: Обещание {} - пытался дождаться .map , и я использовал решение, упомянутое в вопросе:
const userOrganizationGroups = async (organizationGroupsList) => {
if (Array.isArray(organizationGroupsList) && organizationGroupsList.length) {
const result = await Promise.all(organizationGroupsList.map(async (element) => {
const { organizationId, groupId } = element;
const { Organizations, Groups } = models;
const organization = await Organizations.findOne(
{ _id: organizationId },
{ name: 1, _id: 0 },
);
const group = await Groups.findOne({ _id: groupId });
return Object.assign({}, {
organizationName: organization.name,
group: group.name,
});
}));
return result;
}
Как я могу исправить эту проблему?