Javascript变量不在函数外工作

AKG*_*AKG 2 javascript ajax jquery json scope

可能重复:
如何返回AJAX响应文本?

我正在尝试使用以下代码.我知道在函数中的变量范围内我做的不对,但我无法弄清楚是什么(我主要是设计师,我很高兴我终于明白了JSON的含义).任何人都可以把我推向正确的方向吗?谢谢 :)

var list = new Array();

//Twitter
function twitter(photos){
    $.each(photos.results, function(index, photo){
        if (photo.entities.media){
            list.push(photo.entities.media[0].media_url);
            console.log(list); // working here, returns array
        }
    });     
}
var url = "https://search.twitter.com/search.json?callback=?&q=%23pikachu&include_entities=true&count=50";
$.getJSON(url, twitter);

console.log(list); //not working here, returns []
Run Code Online (Sandbox Code Playgroud)

Ift*_*tah 7

问题在于订单运行:

  1. 从twitter请求JSON
  2. 打印列表(空)
  3. JSON响应 - 列表被填充.

您可以通过向日志添加时间戳来验证(即.console.log(new Date() + ' '+list)).

解决问题的最简单方法是在回调结束时调用后续逻辑,而不是在getJSON行下面.