Ich bekomme Daten von einer MySQL-Abfrage und schiebe dann die Elemente in ein Array. Sobald ich jedoch die Abfrage verlassen habe, ist das Array leer. Ich schätze, das liegt daran, dass die Elemente im Array nur Referenzen sind. Aber wie behalte ich die Elemente im Array?Nachdem Elemente im Array verschoben wurden, ist es leer.
var timeblocked = [];
var timeunblocked = [];
connection.query("SELECT user_relationships.*, block_intervals.* FROM user_relationships INNER JOIN block_intervals ON user_relationships.id = block_intervals.relationfk WHERE (user1 = '"+currentUserID+"' AND user2 = '"+user2_in_blockedRelationship+"' AND timeunblocked IS NOT NULL)", function(error, resultsForBlock){
for (var i = 0; i<resultsForBlock.length; i++) {
timeblocked.push(resultsForBlock[i].timeblocked);
\t timeunblocked.push(resultsForBlock[i].timeunblocked);
}
console.log("1. timeblocked: ", timeblocked, "timeunblocked: ", timeunblocked); // shows all of the elements in the array
});
console.log("2. timeblocked: ", timeblocked, "timeunblocked: ", timeunblocked); //This shows an empty array
Warum ist die zweite console.log()
NICHT das Array anmelden?
Sie verwenden async Funktion, um Ihr Wunschergebnis zu erhalten, verwenden Rückruf oder Versprechen – sabbir
Weil 'connection.query' async Funktion ist –
Okay. Ich bin ziemlich neu in diesem Bereich. Wie würden Sie die Abfrage anders machen? – suonpera