router.get('/xyz', function(req, res, next) {
var myObj;
XX.getXXByUsername("ee", function(err, doc){
console.log("A: " + doc); //executes second, doc is object that I want
myObj = doc;
});
console.log("B: "+ " " + myObj); //executes first, myObj = undefined
res.render("pr", {title: "XX", myObj: myObj});
});
В основном, я делаю это, потому что хочу отправить объект в шаблон нефрита. Я могу получить объект в консоли A, но в консоли B myObj не определен. Я предполагаю, что это потому, что консоль B выполняется до getXXbyUsername, потому что в getXXbyUsername callback я определяю myObj.Почему B выполняется до A в узле?
Я не знаю, объяснил ли я, в чем моя проблема, но я начинаю, и это лучшее объяснение проблемы, которую я могу дать.
Это дубликат [вопрос канонического асинхронного ответа] (http://stackoverflow.com/questions/14220321/how-to-return-the-response-from-an-asynchronous-call). – ssube