簡體   English   中英

我得到 Promise {<pennding> } 在 node.js 異步 function</pennding>

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM