Ich habe einige Probleme mit der Verwaltung der Async-Funktionen. Hier ist mein Code:Sync-Funktionen node.js mit postgresql?
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);
});
Der Benutzer Array schieben einen Benutzer vor der Ausführung von queryInterest, so die Interessen des Benutzers nie gegeben. Wie kann ich das lösen?
Vielen Dank
, warum Sie nicht 'users.push (Benutzer) bewegen;' 'innen queryInterest.on'. Das wird dein Problem lösen. –
In diesem Fall ist die Rückgabe des Codes ein Empy-Array –
Ja, weil Ihr Endereignis auf "Abfrage" -Objekt ist. Sobald die Abfrage abgeschlossen ist, wird das Objekt zurückgegeben. Sie können die Async-Bibliothek verwenden. –