javascript - 如何在 lodash 的地图函数中获取 Mongoose findById 响应?
问题描述
我有一个带有 id 的数组,我需要在名为 Users 的集合(存在集合和模型)中查找这些 ID,以获取有关具有该 id 的用户的信息。
var emails = _.map(toSendEmails,function(id){
var userEmail = User.findById(id, function(err, user) {
return user.email;
});
return userEmail;
});
变量 toSendEmails 是一个 id 数组。
实际场景是 map 函数在 User.findById 返回任何值之前执行
我应该如何进行?
谢谢!
解决方案
您可以从该函数返回一组承诺,_.map
然后等待所有这些承诺得到解决以获取电子邮件列表。
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
});
推荐阅读
- docker - Jenkins / docker:从供应商仓库中提取图像并推送到本地仓库
- ruby-on-rails - 从生日日期获取年龄 - Ruby on rails
- docker - 未知权威签署的 Docker x509 证书
- anylogic - 如何将多个物料项排队到一个站中
- mongodb - MongoDB复制添加失败
- angular - 如何在 angular4 处制作非线性输入范围?
- html - Boostrap 5 轮播,多项目和无限,而不是 jQuery
- dataframe - 像熊猫这样的 Julia DataFrame 中是否有 diff() 函数?
- r - get_timeline() 返回非常少量的推文
- javascript - 在 Shopify 中自动将 div 添加到产品描述中