Есть обработчик запроса api, где db.query() это запрос к PostgreSQL, который возвращает Promise с resolve в случае удачи, и reject в случае ошибки(например, если неправильный пароль к бд).
Сам обработчик запроса:
async getAll(req, res) {
const query = `SELECT * FROM users`
return db
.query(query)
.then(({ rows, rowCount }) => res.status(200).send({ rows, rowCount }))
.catch(error => res.status(400).send({ error }))
// try {
// const { rows, rowCount } = await db.query(query)
// return res.status(200).send({ rows, rowCount })
// } catch (error) {
// return res.status(400).send(error)
// }
}
Соответственно вопрос, как лучше обрабатывать промис, через try catch или then catch ? Прочитал на stackoverflow что try catch лучше использовать для синхронных действий, а then catch для асинхронных? Так ли это?