Вы уже используете асинхронный оператор, что означает, что вы можете использовать подход async / await в своем коде.
Я предполагаю, что ваш pool.query
метод возвращает обещание, поэтому ваш код может выглядеть следующим образом.
exports.getInfo = async (request, h) => {
try {
const result = await pool.query(`SELECT * FROM test`);
return result;
} catch (e) {
if (e.response) {
switch (e.response.status) {
case 404:
return Boom.notFound();
default:
return Boom.failedDependency();
}
} else {
return Boom.failedDependency();
}
}
};
Если нет, то вы можете преобразовать свой метод pool.query
в Обещание.
const QueryResult = (query) => {
return new Promise((resolve, reject) => {
pool.query(`SELECT * FROM test`, (err, result) => {
if (err) return reject(err);
return resolve(result)
});
})
}
exports.getInfo = async (request, h) => {
try {
const result = await QueryResult(`SELECT * FROM test`);
return result;
} catch (e) {
if (e.response) {
switch (e.response.status) {
case 404:
return Boom.notFound();
default:
return Boom.failedDependency();
}
} else {
return Boom.failedDependency();
}
}
};