Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从不同范围访问变量(Javascript)_Javascript_Scope - Fatal编程技术网

从不同范围访问变量(Javascript)

从不同范围访问变量(Javascript),javascript,scope,Javascript,Scope,我在另一个函数中有这个回调函数- var getData = function(){ var x =""; myCollection.find().toArray(function(err,records){ //myCollection is declared somewhere else x = "this is where I set my variable"; }); console.log(x); //x is just blank } 如

我在另一个函数中有这个回调函数-

var getData = function(){
   var x ="";
   myCollection.find().toArray(function(err,records){ //myCollection is declared somewhere else
       x = "this is where I set my variable"; 

   });
   console.log(x); //x is just blank

}

如何在回调函数内部设置变量x,使其仍将该值保留在函数作用域之外?是否可能?

find()。toArray(…)
是一个偶然的“异步”操作?如果不是,回调是否执行一次?因为在这段代码中,只有一个
x
变量,所以赋值要么没有发生,要么没有很快发生。当然,如果回调函数在console.log之前调用,并且实际设置
x
@user2864740的值,那么代码应该按原样工作:您可能是对的!我没有想到这一点。可能的重复-它对于其他所有异步任务都是一样的(在您的例子中是数据库?)