Javascript如何检查多个等待异步mssql DB请求结果是否存在错误?
我在Javascript的异步函数中有多个节点mssql模块请求mssql数据库 通常等待结果并检查是否全部通过的最佳方法是什么? 请求属于同一类,因此它们必须一起通过,或者如果一个请求失败,那么所有请求都会失败Javascript如何检查多个等待异步mssql DB请求结果是否存在错误?,javascript,node.js,sql-server,asynchronous,error-handling,Javascript,Node.js,Sql Server,Asynchronous,Error Handling,我在Javascript的异步函数中有多个节点mssql模块请求mssql数据库 通常等待结果并检查是否全部通过的最佳方法是什么? 请求属于同一类,因此它们必须一起通过,或者如果一个请求失败,那么所有请求都会失败 let result1 = await requestObject.query(someQuery); let result2 = await requestObject.query(otherQuery); 通常,我使用.then().catch子句 .then((result)
let result1 = await requestObject.query(someQuery);
let result2 = await requestObject.query(otherQuery);
通常,我使用.then().catch子句
.then((result) => res.status(200).send(result)).catch(err => res.status(404).send(err));
但我想避免这种情况,因为我有两个查询,我只能在最后一个查询中使用它,因为在发送响应后,我无法发送另一个响应
检查两个查询的返回状态是否正常或是否发生错误的最佳方法是什么?因为它们是按照上面的顺序同步执行的
我认为我的方法可能是:
您可以执行
try/catch
:
try {
let result1 = await requestObject.query(someQuery);
let result2 = await requestObject.query(otherQuery);
// now you have both results, do something
}
catch (err) {
// if one of them fails
console.log(err)
}
Promise.all()
。链接到它的.catch()
将在第一个错误时触发,无论数组中的哪个承诺触发了它。好的,谢谢,就这些?这很简单,它会自动捕获请求过程中发生的任何错误?但是我的其他方法也行吗?是吗?是的,请注意:谢谢,我注意到一些有趣的IIFE代码:(async()=>{var text=wait main();console.log(text);})().catch(e=>{//处理链失败的事实})代码>我是否也可以这样使用它来立即执行它,并在获得结果后立即在then子句中自动返回结果<代码>(async()=>{var text=await main();console.log(text);})()。然后(result=>doSomething()).catch(e=>console.log(e))})代码>