我正在尝试从本地数据库中获取值,但是我只能获得'Promise {
const getFromDB = async() =>{
return await pool.query('SELECT * FROM services');
};
答案 0 :(得分:1)
async
函数始终返回承诺。该承诺的已解析值是函数中的代码返回的任何值。因此,要获得承诺的价值,您可以使用await
或.then()
;
getFromDB().then(val => {
// got value here
console.log(val);
}).catch(e => {
// error
console.log(e);
});
JavaScript没有免费的午餐。异步获取的值只能从异步函数(通过回调或promise或其他类似的异步机制)返回。
或者,如果调用者本身是异步函数,则可以使用await
:
async function someOtherFunc() {
try {
let val = await getFromDb();
console.log(val);
} catch(e) {
// error
console.log(e);
}
}