为什么我的功能不被调用?

时间:2016-04-15 23:54:54

标签: javascript jquery function api

因此,需要不同的API调用来获取feed对象所需的所有数据,因此我有两个独立的API调用函数。第一个获取每个feed的基本信息,并将每个feed作为对象抛出到一个数组中。 第二个函数(finishArray())为每个对象,URL和状态添加2个属性。无论出于何种原因,我的第二个功能都没有被调用。我无法弄清楚为什么。

第二个函数是finishArray()函数,我计划在完成原始forEach循环之后调用它来生成基本数组。

var feeds = ["Towellie", "TrumpSC", "TeamSp00ky", "TwitchPlaysPokemon", "Widgitybear", "AriaBlarg", "TheMexicanRunner", "OPNerd", "rabbitbong", "Wingsofdeath", "MedryBW"];

function feedStatus(feedTitle, onOrOff, gamePlayed) {
  this.title = feedTitle;
  this.streaming = onOrOff;
  this.url = "https://www.twitch.tv/" + this.title;
  this.game = gamePlayed;
};

var feedStatusArray = [];

var finishArray = function() {
  feedStatusArray.forEach(function(feed) {
    $.getJSON('https://api.twitch.tv/kraken/channels/' + feed.title + '?callback=?', function(data) {
      feed.logo = data.logo;
      feed.status = data.status;
    });
  });
}

$(document).ready(function() {
  feeds.forEach(function(feedName) {
    $.getJSON('https://api.twitch.tv/kraken/streams/' + feedName + '?callback=?', function(data) {
      if (data.stream === null) {
        feedStatusArray.push(new feedStatus(feedName, data.stream));
      } else {
        feedStatusArray.push(new feedStatus(feedName, data.stream, data.stream.game))
      }
    });

  });
  finishArray();
})

0 个答案:

没有答案