Как перебрать объект, содержащий запросы, и выполнить их все - PullRequest
0 голосов
/ 17 февраля 2020

У меня есть объект, который выглядит следующим образом:

let queries = [
  {
    name: "checkUsers",
    query: 'select * from users where inactive = 1'
  },
  {
    name: "checkSubscriptions",
    query: 'select * from subscriptions where invalid = 1'
  }
]

Я делаю AWS лямбда-функцию, которая будет повторять эти запросы, и если любой из них вернет значение, я отправлю электронное письмо .

Я придумал этот псевдокод:

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;

Мне интересно, это идеальный подход? Мне нужно повторить все запросы объектов.

1 Ответ

1 голос
/ 17 февраля 2020

Я не вижу ничего плохого в том, чего вы пытаетесь достичь, но есть несколько изменений, которые вы могли бы сделать

  • Попробуйте использовать Promise.all, если можете. Это ускорит весь процесс, так как все будет выполняться параллельно. Это также будет зависеть от количества запросов.

  • Попробуйте использовать несколько операторов в одном запросе. Таким образом, вы сделаете один звонок, а затем вы можете добавить лог c для идентификации. Отметьте здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...