Masalahnya adalah ini:
var r = db.demo(query, function(result) { data = result; });
console.log( 'Data : ' + data);
console.log
akan berjalan sebelum fungsi callback dipanggil, karena db.demo
tidak sinkron, artinya mungkin perlu beberapa waktu untuk menyelesaikannya, tetapi sementara baris kode berikutnya, console.log
, akan dieksekusi.
Jika Anda ingin mengakses hasil, Anda harus menunggu fungsi panggilan balik dipanggil:
var r = db.demo(query, function(result) {
console.log( 'Data : ' + result);
});
Ini adalah bagaimana sebagian besar kode yang berhubungan dengan I/O akan berfungsi di Node, jadi penting untuk mempelajarinya.