【发布时间】:2015-07-02 06:02:13
【问题描述】:
嗨,我是 nodejs 的新手,我正在尝试实施一个项目,在该项目中,我们必须在事件管理站点中......我们正在为特定用户的页面添加事件。
现在的问题是我被困在这一点上:-
exports.getDashBoard=function(req,res){
var eventList=[];
for(var i=0;i<req.user.invites.length;i++)
{
Event.find({_id:req.user.invites[i]},function(err,events){
if(err)
{
console.log(err);
}
else
{
eventList.push(events[0]);
console.log(eventList);
// shows value inside the array as wanted
}
});
}
console.log(eventList);
// shows null value why? the variable is in the scope as its declaration
res.render('dashboard');
};
说明: 我创建了一个函数,每次调用该函数时,我都会在其中声明和初始化变量 eventList。我在一个内部函数中使用了这个变量 eventList 来更新它的值并连接到以前的值。console.log 显示 eventList 正在根据需要更新。但是当我尝试在内部函数之外使用这个变量时是 doenst工作,我得到一个初始化的空数组变量的范围是本地的,在主函数中并且在内部函数内部可见但是当我在内部函数之后使用它时,即在for循环之外,数组显示空值 怎么办?
下图:- 我创建了一个函数,每次调用该函数时,我都会在其中声明和初始化变量 eventList。我在一个内部函数中使用了这个变量 eventList 来更新它的值并连接到 previoys 值。console.log 显示 eventList 正在根据需要更新。但是当我尝试在内部函数之外使用这个变量时是 doenst工作,我得到一个初始化的空数组变量的范围是局部的,在主函数中并且在内部函数中可见但是当我在内部函数之后使用它时消失了
怎么办?
【问题讨论】:
标签: javascript arrays json node.js callback