猫鼬 findOne :异步和同步之间的不同
Posted
技术标签:
【中文标题】猫鼬 findOne :异步和同步之间的不同【英文标题】:mongoose findOne : different between async & sync 【发布时间】:2021-12-04 06:18:19 【问题描述】:我对知道两者之间有什么不同感到困惑:
var users = Users.findOne(key)
var users = await Users.findOne(key)
【问题讨论】:
【参考方案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)
【讨论】:
以上是关于猫鼬 findOne :异步和同步之间的不同的主要内容,如果未能解决你的问题,请参考以下文章