Praticamente tutto in Node.js è asincrono e le funzioni di query SQL lo sono sicuramente. Stai chiamando conn.query(query, callback)
, il che significa che la query viene chiamata e quindi, una volta ottenuto un risultato in futuro, la funzione di callback viene chiamata con il risultato su cui lavorare. Quindi:
conn.query(query, function runThisEventually(err, rows, fields) {
if (err) {
console.error("One or more errors occurred!");
console.error(err);
return;
}
processResults(rows, fields);
});
Non otterrai il risultato immediatamente dopo aver chiamato conn.query(...)
, quindi il tuo codice può fare "altre cose" nel frattempo e, a un certo punto, la tua richiamata verrà attivata e potrai riprendere l'elaborazione dei risultati lì.