猫鼬查找一个:异步和同步不同



我不知道这两者有什么不同:

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

Users.findOne()方法返回一个承诺,该承诺可以被解决或拒绝。看到承诺

在上面的例子中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})

所以你将有数据像这样的[{key:value}]你的mongodb存储在users变量。

await也只在async函数中有效,所以你需要把它包装在async函数

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

最新更新