Vấn đề là đây:
var r = db.demo(query, function(result) { data = result; });
console.log( 'Data : ' + data);
console.log
sẽ chạy trước khi hàm gọi lại được gọi, vì db.demo
là không đồng bộ, có nghĩa là có thể mất một khoảng thời gian để hoàn thành, nhưng dòng tiếp theo của mã, console.log
, sẽ được thực thi.
Nếu bạn muốn truy cập kết quả, bạn cần đợi hàm gọi lại được gọi:
var r = db.demo(query, function(result) {
console.log( 'Data : ' + result);
});
Đây là cách hầu hết các mã xử lý I / O sẽ hoạt động trong Node, vì vậy điều quan trọng là phải tìm hiểu về nó.