[英]How to get value from async function?
我正在尝试从本地数据库中获取值,但是我只能获得'Promise {<Pending>}'。 这是我在互联网上找到的代码。 下面的代码应返回一个包含表行的结果对象,但我只是希望。
const getFromDB = async() =>{
return await pool.query('SELECT * FROM services');
};
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);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.