Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript在异步数组中获取mongoose数据。prototype.map()_Javascript_Node.js_Mongodb_Mongoose_Async Await - Fatal编程技术网

Javascript在异步数组中获取mongoose数据。prototype.map()

Javascript在异步数组中获取mongoose数据。prototype.map(),javascript,node.js,mongodb,mongoose,async-await,Javascript,Node.js,Mongodb,Mongoose,Async Await,我正在处理我的nodejs项目,我刚刚注意到在async.map()迭代中等待mongoose查询返回null const arr = [1, 2, 3, 4] const result = arr.map(async obj => { return { number: obj, user: await User.findOne({role: 'admin'}) } }) Pro

我正在处理我的nodejs项目,我刚刚注意到在async.map()迭代中等待mongoose查询返回null

    const arr = [1, 2, 3, 4]
    const result = arr.map(async obj => {
        return {
            number: obj,
            user: await User.findOne({role: 'admin'})
        }
    })
    Promise.all(result).then(res => {
        console.log(result)
    })
    res.sendStatus(200)
日志:

如何正确地从异步数组.prototype.map()中的mongoose获取数据


请注意findOne之后的.exec()

我可能会补充一点,如果您使用admin mongo角色执行findOne,那么它可能会始终返回相同的文档。

输出保持不变。哦,是的,但只是作为一个示例进行补充。
[
  Promise { { number: 1, user: null } },
  Promise { { number: 2, user: null } },
  Promise { { number: 3, user: null } },
  Promise { { number: 4, user: null } }
]
const arr = [1, 2, 3, 4]
const result = arr.map(async obj => {
    return {
        number: obj,
        user: await User.findOne({role: 'admin'}).exec()
    }
})
Promise.all(result).then(res => {
    console.log(result)
})
res.sendStatus(200)