我尽力了解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;
}
如果有人可以帮助我,我会很高兴。
答案 0 :(得分:3)
您不应该能够从异步函数返回变量。你应该继续阅读一些关于如何打击回调地狱的文章。您需要此数据的所有逻辑都应位于查询的回调函数中。使代码看起来更好的一些选项是使用async.js
模块或promises
(您还可以检查nodeSJ 7.6.0版本上添加的async / await。