async functions
вернуть обещание, поэтому вам нужно дождаться его или использовать .then()
, чтобы получить результат.
Помните, что await
можно использовать только внутри async function
, поэтому вынужно изменить структуру вашего кода.
Я рекомендую вам проверить документацию , а также дополнительную информацию об асинхронном программировании в Javascript.
Сохранение вашего первого кода таким, ономожно исправить следующим образом (на мой взгляд, это немного странно):
function a() {
return pgPromise.one('SELECT 1')
.then(row => {
return row;
})
.catch(error => {
console.log(error);
});
}
a().then(console.log);
Если вы хотите использовать async / await, этот пример может пригодиться для изучения:
async function a() {
const row = await pgPromise.one('SELECT 1');
return row;
}
a().then(console.log).catch(console.error);
В этом случае обработка ошибок выполняется вне функции, на стороне вызывающей стороны (это может быть сделано внутри через try / catch, это зависит от варианта использования).