【问题标题】:mongoose findOne : different between async & sync猫鼬 findOne :异步和同步之间的不同
【发布时间】:2021-12-04 06:18:19
【问题描述】:

我对知道两者之间有什么不同感到困惑:

var users = Users.findOne({key})

var users = await Users.findOne({key})

【问题讨论】:

    标签: node.js asynchronous mongoose async-await


    【解决方案1】:
    var users = Users.findOne({key})
    

    Users.findOne() 方法返回一个可以解决或拒绝的承诺。见promises

    所以在上述情况下,users 变量实际上包含一个 promise 对象,如果您想获取解析的数据,您必须执行类似的操作

    users.then(data=>{
    // your db query data
    }).catch(err=>{
    // error if something goes wrong
    })
    
    
    
        
    

    以下带有 await 的语法实际上为您提供了 promise 的解析数据,请参阅 await

     var users = await Users.findOne({key})
    

    因此,您的 mongodb 的 [{key:value}] 这样的数据将存储在 users 变量中。

    另外await 仅在异步函数中有效,因此您需要将其包装在异步函数中

    async function foo(){
        var users = await Users.findOne({key})
    
    }
    

    【讨论】:

      猜你喜欢
      • 2019-10-12
      • 2017-05-31
      • 2015-10-23
      • 2023-04-08
      • 2021-10-16
      • 2015-08-03
      • 2018-08-30
      • 1970-01-01
      • 2015-06-19
      相关资源
      最近更新 更多