函数内nodejs中的变量范围

时间:2013-03-22 12:19:03

标签: node.js variables scope

如何确定数据范围wHere数据为空。 我想将数据放入var中,以便我可以在函数外部使用它。

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

1 个答案:

答案 0 :(得分:2)

'datat'的作用域在您的函数之外。 twit.search是异步的,因此在用sys.inspect检查'datat'之前可能不会返回'data'。

这可以让你看到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));

});

但理想情况下你会使用这样的回调......

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