Javascript 如何修改此变量?
举个例子:Javascript 如何修改此变量?,javascript,mongodb,callback,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”,即如何更改回调中数据的值?您必须习惯异步思考!该值仅在执行回调时更改 这样做: var data = "foo"; db.collection('users
var data = "foo";
db.collection('users').find({}).toArray(function(err,docs){ // a mongodb object
data = 'bar';
});
console.log(data); // prints 'foo'
如何使其打印“bar”,即如何更改回调中
数据的值?您必须习惯异步思考!该值仅在执行回调时更改
这样做:
var data = "foo";
db.collection('users').find({}).toArray(function(err,docs){ // a mongodb object
data = 'bar';
console.log(data);
});
你必须习惯于异步思考!该值仅在执行回调时更改
这样做:
var data = "foo";
db.collection('users').find({}).toArray(function(err,docs){ // a mongodb object
data = 'bar';
console.log(data);
});
正如其他人所暗示的,你的问题不是范围,而是执行顺序。您的console.log在将“bar”分配给值之前被调用。正如其他人所暗示的,您的问题不是范围,而是执行顺序。您的console.log在将“bar”分配给值之前被调用。这都是关于异步的……问自己两个问题,1
它被调用了吗,2
它什么时候被调用(即异步?),似乎您已经在回调中更改了值。函数是异步的,因为在函数执行之后不会有任何更改。这都是关于异步的…问自己两个问题,1
它被调用了吗,2
它何时被调用(即异步?),似乎您已经更改了回调中的值。函数是异步的,因为在函数执行之后不会有任何更改。