0
我有一些问题管理异步功能。这里是我的代码:用postgresql同步函数node.js?
var query = client.query("select * from usuario");
query.on('row', function(user) {
var queryInterest = client.query("select interes.nombre from interes inner join relacioniu on relacioniu.idinteres=interes.id where relacioniu.idusuario = '"+user.id+"'");
queryInterest.on('row',function(row) {
user.interest = row;
console.log("user added");
});
users.push(user);
});
// After all data is returned, close connection and return results
query.on('end', function() {
done();
console.log("finish");
return res.json(users);
});
在执行queryInterest之前,users数组推送用户,所以用户的兴趣永远不会被添加。我该如何解决这个问题?
谢谢你这么多
为什么你不能移动'users.push(用户);''里面queryInterest.on'。这将解决您的问题。 –
在这种情况下,代码的返回是一个empy数组 –
是的,因为您的结束事件在'query'对象上。所以只要查询完成,它就返回对象。你可以考虑使用'async'库。 –