我有一部分代码可以正常工作-它对数据库执行查询并打印出所有行(下面的第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());
如何在上面的代码段中实现该目标?
答案 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);
}
}