我是Node.js的新手,不确定我是否正确理解Async / Await。这就是我想要做的
我正在将值传递给函数,并且期望它像
一样工作步骤1.将两个值相加 步骤2。根据步骤1的值从数据库中获取文档 步骤3.返回从步骤2获取的文档。
但是我看到的结果是
步骤1.将两个值相加 步骤2.在数据库查询运行时返回未定义 步骤3.完成运行查询
如何从中获得所需的输出。
var someFunction = async (a,b)=>{
var k;
try{
k = a+b;
}catch(err){
return(err);
}
var document;
try{
document = await db.collection(somecollection).findOne({_id:k})
}catch(err){
return(err);
}
return(document);
}
someFunction(4,5).then((result)=>{
console.log(result);
});
答案 0 :(得分:1)
findone
可能返回undefined
findOne returns undefined on the server
在第一个try...catch
块中,为什么还要担心添加两个变量的异常?永远不会导致javascript错误。
还要确保您正确传递_id以找到一个,Mongo使用UUID来计算_id
,我认为添加+ b不会返回该值