无法在javascript / nodejs中从全局variables中检索数据
我试图把数据放入一个对象中。 虽然循环中的这个对象有值,但这个循环中的对象没有值(空)。 我有实例对象全局variablesobj
。 我怎么了?
ps:findOne是mongoose的方法。 (MongoDB的)。
var obj = []; for(var i = 0;i<anotherObj.length;i++){ var id = anotherObj[i].id; model.findOne({_id:id},function(err,user){ if(!err){ obj.push(user); console.log(obj); /* <= it has value */ } }) } console.log(obj); /* <= this is null */
您的findOnecallback运行asynchronous,这意味着您将最后一个console.log在将用户推送到obj(数组)之前运行。
在循环中的每个用户都被获取之后,您将需要调用一个函数。 尝试一下async软件包
你的mongoose查询是asynchronous的。 只有在事件循环的下一次迭代/数据可用时,才会执行callback。 这就是为什么你看到obj为空。