我试图调用函数,使SQL调用并返回数据到调用函数我试图使用node.js/JavaScript中的promises/await语法失败我的函数仍然异步运行。
也许不太理解这是如何工作的。
const {dbconn, dbstmt} = require('idb-pconnector');
async function get_data(){
const {dbconn, dbstmt} = require('idb-connector');
const sql_stsmt = 'SELECT * FROM QIWS.QCUSTCDT';
const conn1 = new dbconn();
conn1.conn('*LOCAL');
const stmt = new dbstmt(conn1);
try {
await stmt.exec(sql_stsmt, (x) => {
stmt.close();
conn1.disconn();
conn1.close();
// getting expected data here..
console.log("1..")
console.log("%s", JSON.stringify(x));
return x;
});
}
catch (error) {
return console.error(error);
}
}
async function main() {
try{
const result = await get_data()
console.log("2..")
// still coming out undefined here...
console.log("%s", JSON.stringify(result));
return result;
}
catch(error){
return console.error(error);
}
}
let data = main();
console.log("3..")
// coming out empty {} here.
console.log("%s", JSON.stringify(data));
字符串
3条答案
按热度按时间aurhwmvo1#
你应该 Package exec方法简单的例子:
字符串
vulvrdjw2#
很多好的想法和阅读。感谢基思和VLAZ能够修改。现在工作。(但是,仍然可能需要一些错误捕获逻辑的帮助。)
字符串
kwvwclae3#
你正在尝试做的事情无法在JavaScript中完成。
=编辑=
async and await
不会从根本上改变promise在JavaScript中的工作方式,也不会改变它是单线程的。异步函数返回一个Promise,在非异步函数中获取这个Promise结果的唯一方法是在Promise上调用
then
。字符串
型