Node.js 函数中nodejs中变量的作用域
如何定义datat的范围? 这里datat是空的。 我想把数据放在一个变量中,这样我就可以在函数之外使用它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“
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
为空。欢迎来到异步世界:)在第二个示例中,您不需要匿名函数。只需通过回调
。