【发布时间】:2016-12-06 03:05:42
【问题描述】:
我在尝试向变量 x 添加行时遇到问题。我不明白如何从另一个函数调用的匿名函数返回值。
var pgClient = new pg.Client(connectionString);
pgClient.connect();
var query = pgClient.query("SELECT * from sceglie");
var x = [];
query.on("row", function(row,result){
result.addRow(row);
x.push(row);
});
console.log(x);
【问题讨论】:
-
你...不要。就这么简单。
-
@KevinB 但是有没有一种解决方案可以创建一个像函数 foo (query_string,DB_URL){} 这样的通用函数来返回这个数据库上的查询结果?
-
匿名函数将异步运行(每次“row”事件发生时),
console.log将立即执行,因此此时x将始终为空。你需要某种回调。 -
不,不可能有一个函数返回异步操作的结果,除非异步操作在调用该函数之前已经完成。
-
另一个相关的规范骗局:stackoverflow.com/questions/14220321/…
标签: javascript node.js postgresql