Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.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
Node.js 函数中nodejs中变量的作用域_Node.js_Variables_Scope - Fatal编程技术网

Node.js 函数中nodejs中变量的作用域

Node.js 函数中nodejs中变量的作用域,node.js,variables,scope,Node.js,Variables,Scope,如何定义datat的范围? 这里datat是空的。 我想把数据放在一个变量中,这样我就可以在函数之外使用它 var datat; twit.search('#louieck', {include_entities:true,page:paget,maxid:maxidt}, function(data) { // and output to the console: datat = data; }); sys.puts(sys.inspect(datat)); 问候 Bussiere“

如何定义datat的范围? 这里datat是空的。 我想把数据放在一个变量中,这样我就可以在函数之外使用它

var datat;
twit.search('#louieck', {include_entities:true,page:paget,maxid:maxidt}, function(data) {

// and output to the console:

datat =  data;

});
sys.puts(sys.inspect(datat));
问候


Bussiere“datat”的范围超出了您的功能范围。twit.search是异步的,因此在使用sys.inspect检查“datat”之前可能不会返回“data”

这将让您看到数据:

var datat;
twit.search('#louieck', {include_entities:true,page:paget,maxid:maxidt}, function(data) {

    // and output to the console:
    datat =  data;
    sys.puts(sys.inspect(datat));

});
但理想情况下,您应该使用这样的回调

var datat;
var callback = function(d){
    sys.puts(sys.inspect(d));

    datat = d;
    // do something more with datat

};

twit.search('#louieck', {include_entities:true,page:paget,maxid:maxidt}, function(data) {

    callback(data);

});
编辑-根据注释进行简化

var datat;
var callback = function(d){
  sys.puts(sys.inspect(d));
  datat = d;
  // do something more with datat
};
twit.search('#louieck', {include_entities:true,page:paget,maxid:maxidt},callback(data));

在调用
sys.put
时,回调函数尚未被调用,因此
datat
为空。欢迎来到异步世界:)在第二个示例中,您不需要匿名函数。只需通过
回调