为什么这个数组会丢失$ .getJSON之外的数据?

时间:2013-10-19 20:01:48

标签: javascript arrays instagram

我正在向Instagram发送请求以获取关注者ID,一切正常,直到我想使用$.getJSON方法之外的数组。以下是代码的相关部分:

var allFollowings = [];
 $.getJSON("https://api.instagram.com/v1/users/self/follows?access_token="+$.urlParam('access_token')+"&count="+followingsCount+"&callback=?", function(json) {


   for(var i = 0; i < json.data.length; i++) {
        console.log(json.data[i].id); // this is not empty
        allFollowings[i] = json.data[i].id;
   }
   console.log(allFollowings); // this is also not empty
});
console.log(allFollowings); // this one is empty!!!

显然我做错了,这是我第一次遇到这个问题。但是我做错了什么?感谢。

2 个答案:

答案 0 :(得分:1)

它实际上并没有丢失其数据。会发生什么情况是您的$.getJSON回调函数在上一次console.log(allFollowings);调用后异步调用。

答案 1 :(得分:0)

脚本末尾的console.loggetJSON调用回调之前执行。这是javascript的异步特性。