Problém je tento:
var r = db.demo(query, function(result) { data = result; });
console.log( 'Data : ' + data);
console.log
se spustí před voláním funkce zpětného volání, protože db.demo
je asynchronní, což znamená, že dokončení může chvíli trvat, ale po celou dobu bude další řádek kódu console.log
, bude proveden.
Pokud chcete získat přístup k výsledkům, musíte počkat na zavolání funkce zpětného volání:
var r = db.demo(query, function(result) {
console.log( 'Data : ' + result);
});
Takto bude v Node fungovat většina kódu zabývajícího se I/O, takže je důležité se o tom dozvědět.