Node.js 如何迭代包含查询的对象,并执行所有查询

Node.js 如何迭代包含查询的对象,并执行所有查询,node.js,aws-lambda,Node.js,Aws Lambda,我有一个像这样的对象: let queries = [ { name: "checkUsers", query: 'select * from users where inactive = 1' }, { name: "checkSubscriptions", query: 'select * from subscriptions where invalid = 1' } ] 我正在制作一个AWS Lambda函数,它将迭代这些查询,如果其中任何

我有一个像这样的对象:

let queries = [
  {
    name: "checkUsers",
    query: 'select * from users where inactive = 1'
  },
  {
    name: "checkSubscriptions",
    query: 'select * from subscriptions where invalid = 1'
  }
]
我正在制作一个AWS Lambda函数,它将迭代这些查询,如果其中任何一个返回值,我将发送一封电子邮件

我提出了以下伪代码:

for (let prop in queries) {  

  const result = await mysqlConnector.runQuery(prop.query).catch(async error => {
    // handle error in query    
  });

  if (result.length < 0){
    // send email
  }
}

return;

我想知道这是理想的方法吗?我需要迭代所有对象查询。

我看不出您试图实现的目标有任何错误,但您可以做的更改很少

尽你所能,试着用承诺。这将加快整个过程,因为事情将并行执行。这也将取决于查询的数量

尝试在一个查询中执行多个语句。这样,您将进行一次调用,然后您可以添加逻辑来识别。检查


只是为了澄清一下,如果回复返回,您是否希望每次都发送邮件?或者当其中一个响应首先返回时?对于所有返回内容的查询,我将发送电子邮件。其他的将被忽略。我会将查询数组的对象映射到请求承诺中,并使用promise.all进行一些变通,或者如果lambda节点运行时为12.9或更高,我会使用promise.all。