函数内的nodejs中的variables范围

如何范围数据? 这里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是asynchronous的,因此在使用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)); }); 

但理想情况下,你会使用这样的callback…

 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));