如何将查询结果保留在回调之外?

时间:2019-05-06 08:17:48

标签: javascript mysql node.js asynchronous callback

我正在使用Node.js驱动程序为mysql设置查询请求。 查询完成后,我想在函数之外使用该结果的值(进行计算并在网页上显示结果),但是由于它是异步的,因此我无法做到这一点。

我一直在寻找解决方案,但我想它使我对回调和Promise更加困惑。有没有办法做到这一点,或者有什么解决办法可以使其同步以便在脚本中重用该值。

let selectQuery = 'select * from orders';

mysqlClient.connect(function (error) {
       ///////
});

let data = {};
mysqlClient.query(selectQuery, function (error, result) {
    if (error) throw error;
    for (let i = 0; i < result.length; i++) {
       data = result[i];
        console.log(data);
    }
    return data;
});
console.log(data);


mysqlClient.end(function (error) {
    //////
});

第一个数据日志(位于“ for”内部)为我提供了结果,但是无论我为返回.query之外的数据做什么,第二个日志均保持空白

0 个答案:

没有答案