db2 javascript/Node.js - 确保在下一条指令之前完成 SQL 数据提取

问题描述 投票:0回答:1

我试图了解如何使用 javascrip/Node.js 函数来确保在写入 console.log (或 Web 服务器)之前完成 SQL 数据提取。阅读了 Promise、基于 Promise 的驱动程序、异步函数,但还没有有效的示例。

在 IBM i (AS400) 上使用节点 v18.17.1

示例:

// npm install idb-pconnector
function get_data() {
    const { Connection, Statement, } = require('idb-pconnector');

    async function execExample() {
        const connection = new Connection({ url: '*LOCAL' });
        const statement = new Statement(connection);

        const results = await statement.exec('SELECT * FROM QIWS.QCUSTCDT');

       console.log(`1. results:\n ${JSON.stringify(results)}`);        
        // return results;
        return JSON.stringify(results);
    }
    data = execExample().catch((error) => {
    console.error(error);    
    });    
}

data = get_data();
console.log("2." + data);
javascript node.js db2 ibm-midrange
1个回答
0
投票

事情是

get_data()
进行异步调用,因此您的
console.log("2." + data);
在更新“data”变量之前执行。

最后尝试使用此方法填充数据变量:

async function fetchData() {
try {
    const data = await get_data();
    console.log("2." + data);
} catch (error) {
    console.error(error);
} }
© www.soinside.com 2019 - 2024. All rights reserved.