Java脚本-如何将所有结果返回给函数调用?

时间:2018-10-15 17:27:42

标签: javascript node.js function

我有一部分代码可以正常工作-它对数据库执行查询并打印出所有行(下面的第9行)。但是我想将结果返回到函数外部,以便可以进一步分析结果等。

function execute_query() {
    connection.execute({
      sqlText: 'show databases',
      complete: function(err, stmt, rows) {
        if (err) {
          console.error('Failed to execute statement due to the following error: ' + err.message);
        } else {
          for (row in rows) 
            // Line 9: console.log(JSON.stringify(rows, null, 2));
        }
      },
    });
}

console.log(execute_query());

如何在上面的代码段中实现该目标?

1 个答案:

答案 0 :(得分:0)

一种替代方法是使用async函数和Promise

function execute_query() {
  return new Promise(function(resolve, reject)  {
    connection.execute({
      sqlText: 'show databases',
      complete: function(err, stmt, rows) {
        if (err) {
          reject('Failed to execute statement due to the following error: ' + err.message);
        } else {
          resolve(rows);
        }
      },
    });
  });

}

async function main() {
  try {
    let result = await execute_query();
    console.log(result);
  } catch (e) {
    console.log(e);
  }
}