Praktycznie wszystko w Node.js jest asynchroniczne, a funkcje zapytań SQL zdecydowanie tak. Dzwonisz do conn.query(query, callback)
, co oznacza, że zapytanie jest wywoływane, a następnie, gdy w pewnym momencie w przyszłości pojawi się wynik, funkcja wywołania zwrotnego zostanie wywołana z wynikiem, z którym możesz pracować. A więc:
conn.query(query, function runThisEventually(err, rows, fields) {
if (err) {
console.error("One or more errors occurred!");
console.error(err);
return;
}
processResults(rows, fields);
});
Nie otrzymasz wyniku natychmiast po wywołaniu conn.query(...)
, dzięki czemu Twój kod będzie mógł w międzyczasie robić „inne rzeczy”, aw pewnym momencie wywołanie zwrotne zostanie uruchomione i możesz tam rozpocząć przetwarzanie wyników.