从构造函数返回之前完成SQL

时间:2018-10-19 03:02:55

标签: node.js pg-promise

我正在使用pg-promise:

var array = [
              A{Weight: 50, Date: 01/01/2009}, 
              A{Weight: 55, Date: 01/02/2009}, 
              A{Weight: 60, Date: 01/03/2009},... 
]

如果我致电var array = [ {Weight: 50, Date: 01/01/2009}, {Weight: 55, Date: 01/02/2009}, {Weight: 60, Date: 01/03/2009},... ] ,它将返回class Test{ constructor(){ this.a = db.any('SELECT * FROM test'); } }

如何处理此问题?我无法使用test.a来解决此问题,因为我希望值可以在返回之前存储在Promise { <pending> } }中。

2 个答案:

答案 0 :(得分:0)

您需要先将变量foo初始化为空,然后将promise成功函数将foo的值设置为异步结果。

答案 1 :(得分:0)

  

我不能使用.then()解决此问题,因为我希望在返回之前可以将值存储在this.a中。

这是一个矛盾的说法。如果需要在构造函数中使用值,则必须使用then。否则,您可以稍后使用then,如下所示:

var t = new Test();
t.a.then(data => {});

const t = new Test();
const data = await t.a;