javascript - 如何在 lodash 的 map 函数中获取 Mongoose findById 响应?

标签 javascript node.js mongoose lodash

我有一个包含 ids 的数组,我需要在名为 Users 的集合中查找这些 ID(存在集合和模型)以获取有关具有该 id 的用户的信息。

    var emails = _.map(toSendEmails,function(id){
        var userEmail = User.findById(id, function(err, user) {
            return user.email;
        });

        return userEmail;
    });

变量 toSendEmails 是 ids 数组。

实际场景是map函数在User.findById返回任何值之前执行

我应该如何进行?

谢谢!

最佳答案

您可以从 _.map 函数返回一组 promise ,并等待所有这些 promise 得到解决以获取电子邮件列表。

var ePromises = _.map(toSendEmails,function(id){
    return User.findById(id).then(function (user) {
        return user.email;
    });
});

Promise.all(ePromises).then( function (emails){
    // do something with the emails
});

关于javascript - 如何在 lodash 的 map 函数中获取 Mongoose findById 响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53859134/

相关文章:

javascript - 使用 WebStorm 进行 ECMAScript 2015 开发而无需我自己的 gulp/grunt/webpack 脚本?

Javascript:逐行向文件添加样式

javascript - 下载基于Content-Type JavaScript Casperjs的链接

javascript - 通过导入 xml 创建 HTML 表时的 DataTables

node.js - 由于 Mongoose.model,开 Jest 没有关闭

javascript - MongoDB嵌入文档: size limit and aggregation performance concerns

python - gyp_main.py : error: no such option: --no-parallel

node.js - Typescript 属性装饰器可以修改实例成员而不是整个类吗?

node.js - 如何使用 Mongoose 在 Node js 中将此出生日期转换为年龄

node.js - MongoDB 分页聚合查找在海量数据中运行缓慢