[英]I'm getting Promise { <pennding> } on node.js async function
我在nodejs上的class上有這個function。 它正在獲取數據庫上的所有行。
module.exports = class fooClass {
static async fooFunc() {
const mysql = require('mysql');
const util = require('util');
const conn = mysql.createConnection({
host: 'localhost',
user: 'root',
password: '',
database: 'dbname'
});
// node native promisify
const query = util.promisify(conn.query).bind(conn);
try {
const rows = await query('SELECT * FROM `dbtable`');
return rows;
} finally {
conn.end();
}
}
}
當我稱之為 function 時,
let result = fooClass.fooFunc();
console.log(result);
我得到這個:
Promise { <pennding> }
我可以使用fooClass.fooFunc().then...
但這需要我添加一個回調 function then
需要進行大量更改。
有什么方法可以通過調用let result = fooClass.fooFunc();
?
提前致謝。
當 function 調用在 function 內完成時,您可以按照@Bravo 的建議編寫它:
let result = await fooClass.fooFunc();
異步/等待的鏈接
如果您在 function 之外調用它,則:
(async function(){
let result = await fooClass.fooFunc();
})();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.