Skip to content Skip to sidebar Skip to footer

Arrays Disappear Outside Of JSON Request

I am attempting to set up an array with the various properties of a YouTube video (you may be thinking this is somewhat superfluous, however I am planning on adding other sources i

Solution 1:

You are trying to access results of Ajax asyn call which are not yet returned. You need to use result in call back function or pass the results to some function.

var socialPosts = new Array(); 
$.getJSON('https://gdata.youtube.com/feeds/api/videos?author=google&max-results=5&v=2&alt=jsonc&orderby=published', function(data) {
    for(var i=0; i<data.data.items.length; i++) { //for each YouTube video in the request
        socialPosts[i]={date:Date.parse(data.data.items[i].uploaded), title:data.data.items[i].title,source:"YouTube", thumbnail:data.data.items[i].thumbnail.hqDefault, url:'http://www.youtube.com/watch?v=' + data.data.items[i].id}; //Add values of YouTube video to array
    }
    console.log(socialPosts[0].date); //This returns the correct data
    somefun(socialPosts[0].date); 
});

Solution 2:

Because that is an Ajax function and it happens async meaning the code outside the closure executes before the call is finished


Post a Comment for "Arrays Disappear Outside Of JSON Request"