如何修改这个变量?

时间:2013-12-27 15:30:50

标签: javascript mongodb callback

举个例子:

var data = "foo";
db.collection('users').find({}).toArray(function(err,docs){ // a mongodb object
  data = 'bar';
});
console.log(data); // prints 'foo'

如何让它打印'bar',又如何在回调中更改data的值?

2 个答案:

答案 0 :(得分:2)

你必须习惯于异步思考!该值仅在执行回调时更改。

这样做:

var data = "foo";
db.collection('users').find({}).toArray(function(err,docs){ // a mongodb object
  data = 'bar';
  console.log(data);
});

答案 1 :(得分:2)

正如其他人暗示的那样,你的问题不是范围问题,而是执行顺序问题。在将'bar'分配给value之前调用console.log。