Praktiskt taget allt i Node.js är asynkront, och SQL-frågefunktioner är definitivt det. Du ringer conn.query(query, callback)
, vilket betyder att frågan anropas, och sedan när det finns ett resultat någon gång i framtiden, anropas din återuppringningsfunktion med resultatet för dig att arbeta med. Så:
conn.query(query, function runThisEventually(err, rows, fields) {
if (err) {
console.error("One or more errors occurred!");
console.error(err);
return;
}
processResults(rows, fields);
});
Du kommer inte att få resultatet direkt efter att ha anropat conn.query(...)
, så din kod får göra "andra saker" under tiden, och någon gång kommer din återuppringning att utlösas och du kan hämta resultatbearbetning där.