javascript - 异步等待'承诺{} 与 Array.prototype.map
问题描述
我知道有很多关于同一个错误的问题讨论,我看到了大多数问题,但它们并没有解决我的问题。我写了这段代码:
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> }
我发现了一个类似的问题:Promise { } - Trying to await for .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;
}
我该如何解决这个问题?
解决方案
代替
console.log('userOrganizationGroups : ',userOrganizationGroups(list))
利用
userOrganizationGroups(list).then( groups => console.log('userOrganizationGroups : ', groups)
或者
(async () => {
const groups = await userOrganizationGroups(list);
console.log('userOrganizationGroups : ', groups);
})();
推荐阅读
- javascript - 没有提供“id”的参数。角 11
- arrays - C语言指针问题
- ios - 设置我的按钮的背景颜色,不包括附件按钮
- python - 如何使用 python 将此对象格式 2021-04-18 08:01:00 转换为日期时间格式?
- amazon-web-services - 有没有人有一个 PowerShell 脚本来启动和停止 aws ec2 实例
- json - spring boot 将日期写入时间戳
- python - 无法导入 pycolors(Pyling 导入错误) Python 错误
- sql - 通过在 SQL 中对 txn 月份进行分组来对查询进行分组以查找数据
- java - 输出到 CSV 文件时尝试去掉“[”
- javascript - 输入 ID 后填充数据