Javascript, как я могу проверить множественные результаты запроса асинхронной msql БД await на наличие ошибок? - PullRequest
0 голосов
/ 12 июня 2019

У меня есть несколько запросов модуля Node-mssql для mssql-database внутри асинхронной функции в Javascript ...

Каков наилучший способ, как правило, дождаться результатов и проверить, все ли они пройдены? Запросы вроде бы принадлежат друг другу, поэтому они должны проходить все вместе, или если один из них неудачен, то все терпят неудачу.

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)); 

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

Каков наилучший способ проверить, был ли статус возврата обоих моих запросов в порядке или произошла ошибка? потому что они выполняются синхронно в указанном порядке.

Я думаю, что мои подходы были бы:

  1. Я мог бы проверить result1 и result2 для некоторого кода состояния или если они не пусты (в зависимости от моего запроса?)
  2. Я бы сделал цепочку обещаний .then (), где я выполняю свой второй запрос внутри блока .then () - первого полученного запроса, а в конце я делаю .catch (), поэтому он должен автоматически перехватывать все ошибки, которые произошли во время любого запроса, верно?

1 Ответ

1 голос
/ 12 июня 2019

Вы можете сделать 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)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...