繁体   English   中英

如何从异步函数值?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM