Hầu như mọi thứ trong Node.js là không đồng bộ và các hàm truy vấn SQL chắc chắn là như vậy. Bạn đang gọi conn.query(query, callback)
, có nghĩa là truy vấn đó được gọi, và sau đó khi có kết quả vào một thời điểm nào đó trong tương lai, hàm gọi lại của bạn sẽ được gọi cùng với kết quả để bạn làm việc. Vì vậy:
conn.query(query, function runThisEventually(err, rows, fields) {
if (err) {
console.error("One or more errors occurred!");
console.error(err);
return;
}
processResults(rows, fields);
});
Bạn sẽ không nhận được kết quả ngay lập tức sau khi gọi conn.query(...)
, vì vậy, mã của bạn có thể thực hiện "những việc khác" trong thời gian cần thiết và tại một số thời điểm, lệnh gọi lại của bạn sẽ được kích hoạt và bạn có thể bắt đầu xử lý kết quả tại đó.