1
api.get('/getfavourites',function(req,res) {
var userid = req.param('userid');
array = [];
User.findById({_id: userid}, function (err, users) {
if (err) {
res.send(err);
return;
}
else {
var i;
var length = users.favouriteid.length;
for (i = 0; i < length; i++) {
var temp = {eid: users.favouriteid[i].eventid};
Event.findById({_id: temp.eid}, function (err,events) {
if (err) {
res.send(err);
return;
}
else {
array.push(events);
}
});
}
}
});
console.log(array);
res.json(array);
});
由于nodejs的异步工作,我无法获得所需的输出。在请求获取请求之后数组是空的,在array.push(events)范围内使用console.log的地方,我能够获得所需的输出。 我试图用回调来解决这个问题,但我无法做到。我也读了关于承诺对象。你能否解释一下回调的概念,并用不同的可能解决方案来帮助我解决这个问题。我也使用了settimeout函数,问题也没有解决。无法将数据添加到阵列,因为异步nodejs
如何使用数据回调和如何使用它们
感谢回报!
不使用承诺或异步模块的
它的工作非常感谢 –