0

The issue is quite strange for me. It seems that function getChannels should return json, but instead I get undefined. I've put log function right before return statement and it shows me that the data is present.

Please take a look at my pen - https://codepen.io/blooblyboo/pen/VXgdXx

Right above getChannels() I call that function with the given name.

$(this).addClass('current');
  if($(this).find('span.all').length > 0){//output channels to corresponding list
    var ul = $(this).find('ul');
    var list = JSON.parse(localStorage.getItem('channels')), len = list.length, channels = [];
      while(len != 0){
        var channel = getChannels(list[--len]);
        // console.log(channel)
      }
  }
});

function getChannels(channelName){//take list from storage and request all of it's items from twitch
  function Channel(name, display_name, bio, logo, _id){
    this.name = name;
    this.display_name = display_name;
    this.bio = bio;
    this.logo = logo;
    this._id = _id;
  }
    var url = 'https://api.twitch.tv/kraken/users/'+channelName+'?client_id=v1oygovy27vh6tml1vb6edbtlsehkx', result;
    $.ajax({
       url: url,
       data: {
          format: 'json'
       },
       error: function() {
          console.log('Couldn\'t get any');
       },
       success: function(data) {
         var channel = new Channel(data.display_name, data.bio, data.logo, data.name, data._id);
         console.log(channel);
         return channel;
       }
    });
}

0 Answers0