Ich erstelle einen Knotenserver, der mir hilft, eine Datenbank zu verwalten. Ich schaffe einen Überblick, wie viele Elemente in einer bestimmten Queue-Tabelle in der Datenbank, für die ich die folgende Funktion bin mit:Warten auf Versprechen, bevor Wert zurückgegeben wird
var getRowCount = function(table) {
var result = 0;
new sql.Request()
.query('SELECT COUNT(*) AS count FROM Queue_' + table)
.then(function(recordset) {
result = recordset[0].count;
})
.catch(err => console.dir(err));
return result;
};
Hinweis: Ich verwende ES6 aber bin transpiling mit Babel, das heißt Warum verwende ich keine Template-Literatur für die SQL-Abfrage?
Mein Problem ist, dass diese Funktion immer 0
zurückgibt, wenn ich die Informationen an meinen Client sende (über socket.io). Wie warte ich auf das Versprechen der Abfrage, bevor ich das Ergebnis zurücksende?
Für die SQL Ich bin mit node-mssql
Genau das, was ich erreichen wollte, danke! – Marv
'sql.Request' selbst gibt ein Versprechen zurück, also gib das einfach zurück. Die Verwendung von Deferred auf diese Weise ist ein Anti-Pattern. – CodingIntrigue
@RGraham Danke, ich habe nicht gemerkt, dass das einzige Ergebnis das Versprechen ist. Ich habe meine Antwort – buddy123