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

我正在Pro.ise {}关于node.js异步功能

运维笔记admin22浏览0评论

我正在Pro.ise {
}关于node.js异步功能

我正在Pro.ise { }关于node.js异步功能

我在nodejs的类上具有此功能。它正在获取数据库上的所有行。

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();
    }
  }
}

当我调用此函数时,

let result = fooClass.fooFunc();
console.log(result);

我正在得到这个:

Promise { <pennding> }

我可以使用fooClass.fooFunc().then...,但是这需要我在then上添加一个回调函数,并且需要进行很多更改。

有什么方法可以通过仅调用let result = fooClass.fooFunc();来获取行?

提前感谢。

回答如下:

当在函数中完成函数调用时,您可以按照@Bravo的建议编写:

let result = await fooClass.fooFunc();

async/await的链接

如果要在函数外部调用它,则:

(async function(){
   let result = await fooClass.fooFunc();
})();
发布评论

评论列表(0)

  1. 暂无评论