Javascript如何检查多个等待异步mssql DB请求结果是否存在错误?

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)

我在Javascript的异步函数中有多个节点mssql模块请求mssql数据库

通常等待结果并检查是否全部通过的最佳方法是什么? 请求属于同一类,因此它们必须一起通过,或者如果一个请求失败,那么所有请求都会失败

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)); 
但我想避免这种情况,因为我有两个查询,我只能在最后一个查询中使用它,因为在发送响应后,我无法发送另一个响应

检查两个查询的返回状态是否正常或是否发生错误的最佳方法是什么?因为它们是按照上面的顺序同步执行的

我认为我的方法可能是:

  • 我可以检查result1和result2是否有状态码,或者它们是否为空(取决于我的查询?)
  • 我将执行一个.then()承诺链,在第一个结果查询的.then()-块中执行第二个查询,最后执行一个.catch(),因此它将自动捕获任何查询过程中发生的所有错误,对吗

  • 您可以执行
    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))})