因此,需要不同的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();
})