我是使用node.js的新手,现在我正在研究一个查询mongodb的API。
以下函数apiRequest需要调用两个函数,每个函数执行一个单独的db查询。当前函数的问题是如果其中一个查询有某种错误,我就无法捕获它。
实现此功能的最佳方法是什么,以便处理正确的错误。有人把我指向异步库,并提到我必须对promises做些什么,但我真的无法弄明白。理想情况下,我不想更改dbQueryOne和dbQueryTwo的定义,因为它们也在其他地方使用。
exports.apiRequest =function(req,res) {
dbQueryOne(req.body.inputA);
dbQueryTwo(req.body.inputA);
res.send('Moved For Further Action',200);
}
答案 0 :(得分:0)
exports.apiRequest = function(req,res) {
dbFuncs = [dbQueryOne(req.body.inputA), dbQueryTwo(req.body.inputA)];
Promise.all(dbFuncs)
.then(result => {
res.send('Moved For Further Action',200);
})
.catch(err =>{
//catch err
});
}
您可以使用promise.all运行多个查询并捕获catch块中发生的任何错误