使用节点js

时间:2017-06-13 18:44:57

标签: javascript mysql node.js typescript callback

我尽力了解nodeJS / typescript及其技巧。但仍然无法弄清楚如何将我的databasequery结果保存到变量中并返回它。也许有人可以解释我的问题/帮助我:

我有这样的方法:

public getAllProducts(): ProductArray {
    // returns IConnection from "mysql" and connect
    this.databaseConnection.getConnection().connect();

    var product: any = [];
    this.databaseConnection.getConnection().query('SELECT * FROM product', function (error: any, results:any, fields:any) {
        if (error) throw error;
        product.push(results);
    });



    console.log(product);
    return product;
}

如果有人可以帮助我,我会很高兴。

1 个答案:

答案 0 :(得分:3)

您不应该能够从异步函数返回变量。你应该继续阅读一些关于如何打击回调地狱的文章。您需要此数据的所有逻辑都应位于查询的回调函数中。使代码看起来更好的一些选项是使用async.js模块或promises(您还可以检查nodeSJ 7.6.0版本上添加的async / await。