我正在尝试从本地数据库获取值,但只能获取“Promise{}”。以下是我在Internet上找到的代码。下面的代码应返回包含表行的结果对象,但只能获取Promise。
const getFromDB = async() =>{ return await pool.query('SELECT * FROM services'); };
ie3xauqp1#
一个async函数总是返回一个promise,这个promise的解析值就是你的函数返回的值,所以,要从这个promise中得到这个值,你可以使用await或者.then();
async
await
.then()
getFromDB().then(val => { // got value here console.log(val); }).catch(e => { // error console.log(e); });
Javascript中没有免费的午餐,异步获得的值只能从函数异步返回(通过回调或承诺或其他类似的异步机制)。或者,如果调用者本身是一个异步函数,那么可以使用await:
async function someOtherFunc() { try { let val = await getFromDb(); console.log(val); } catch(e) { // error console.log(e); } }
1条答案
按热度按时间ie3xauqp1#
一个
async
函数总是返回一个promise,这个promise的解析值就是你的函数返回的值,所以,要从这个promise中得到这个值,你可以使用await
或者.then()
;Javascript中没有免费的午餐,异步获得的值只能从函数异步返回(通过回调或承诺或其他类似的异步机制)。
或者,如果调用者本身是一个异步函数,那么可以使用
await
: