Должно быть примерно так:
async function dowloadtable() {
const client = new Client({
host: "localhost",
user: "postgres",
port: 5432,
password: "postgres",
database: "postgres"
})
client.connect();
const outx = await new Promise((resolve, reject) => {
client.query(`SELECT * FROM "test"`, (err, res) => {
if (!err) {
resolve(res.rows[0].name);
} else {
reject(err);
}
client.end;
})
});
console.log(outx)
return outx;
}
Я давно не писал на js и уже подзабыл синтаксис промисов, так что в каких-то деталях мог ошибиться.
await перед client.query не спасает
Await - это не волшебная инструкция "сделать хорошо". У неё есть вполне конкретное поведение и если функция, результат выполнения которой вы ждёте, не возвращает промис (как в случае с client.query), то можно хоть десять раз await написать.