Problem polega na tym:
var r = db.demo(query, function(result) { data = result; });
console.log( 'Data : ' + data);
console.log
zostanie uruchomiony przed wywołaniem funkcji zwrotnej, ponieważ db.demo
jest asynchroniczny, co oznacza, że zakończenie może zająć trochę czasu, ale cały czas następna linia kodu, console.log
, zostanie wykonany.
Jeśli chcesz uzyskać dostęp do wyników, musisz poczekać na wywołanie funkcji zwrotnej:
var r = db.demo(query, function(result) {
console.log( 'Data : ' + result);
});
W ten sposób większość kodu zajmującego się I/O będzie działać w Node, więc ważne jest, aby się o tym dowiedzieć.