最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - How to get value from async function? - Stack Overflow

programmeradmin0浏览0评论

I am trying to get values from my local database, but all I can get is 'Promise{<Pending>}'. Here is my code that I found on the internet. The code below should return a result object that contains table rows, but I am only getting promise.

const getFromDB = async() =>{
    return  await pool.query('SELECT * FROM services');
};

I am trying to get values from my local database, but all I can get is 'Promise{<Pending>}'. Here is my code that I found on the internet. The code below should return a result object that contains table rows, but I am only getting promise.

const getFromDB = async() =>{
    return  await pool.query('SELECT * FROM services');
};
Share Improve this question edited Feb 10, 2019 at 3:54 karel 5,89560 gold badges57 silver badges59 bronze badges asked Feb 9, 2019 at 16:26 Petr MPetr M 1633 gold badges3 silver badges13 bronze badges 2
  • How dou you call getFromDB()? – eol Commented Feb 9, 2019 at 16:38
  • Duplicate stackoverflow./questions/48626761/… ? – Hubbitus Commented Feb 9, 2019 at 22:53
Add a ment  | 

1 Answer 1

Reset to default 6

An async function always returns a promise. The resolved value of that promise is whatever value the code in your function returns. So, to get the value out of that promise, you use either await or .then();

getFromDB().then(val => {
    // got value here
    console.log(val);
}).catch(e => {
    // error
    console.log(e);
});

There is no free lunch in Javascript. A value obtained asynchronously can only be returned from a function asynchronously (via callback or promise or other similar async mechanism).

Or, if the caller itself was an async function, then you could use await:

 async function someOtherFunc() {
     try {
         let val = await getFromDb();
         console.log(val);
     } catch(e) {
        // error
        console.log(e);
     }
 }
发布评论

评论列表(0)

  1. 暂无评论