Проблемът е следният:
var r = db.demo(query, function(result) { data = result; });
console.log( 'Data : ' + data);
console.log
ще се изпълни преди функцията за обратно извикване да бъде извикана, защото db.demo
е асинхронен, което означава, че може да отнеме известно време, за да завърши, но през цялото време следващият ред от кода, console.log
, ще се изпълни.
Ако искате да получите достъп до резултатите, трябва да изчакате функцията за обратно извикване да бъде извикана:
var r = db.demo(query, function(result) {
console.log( 'Data : ' + result);
});
Ето как повечето кодове, занимаващи се с I/O, ще функционират в Node, така че е важно да научите за това.