【发布时间】:2021-12-04 06:18:19
【问题描述】:
我对知道两者之间有什么不同感到困惑:
var users = Users.findOne({key})
var users = await Users.findOne({key})
【问题讨论】:
标签: node.js asynchronous mongoose async-await
我对知道两者之间有什么不同感到困惑:
var users = Users.findOne({key})
var users = await Users.findOne({key})
【问题讨论】:
标签: node.js asynchronous mongoose async-await
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})
}
【讨论】: