目前我正在实施twitch.tv应用程序使用json作为我的freecodecamp课程的一部分。使用twitch api,我必须调用json两次,以获取用户和流数据。我也在循环中这样做,因为我有多个拖放器需要遵循。在这里你可以看到我的code。
$(document).ready(function() {
var streamerList = ["MisterRogers","freecodecamp"];
getStream(streamerList);
});
function getStream(streamerList) {
for (var k = 0; k < streamerList.length; k++) {
var userURL = makeURL("users", streamerList[k]);
var streamURL = makeURL("streams", streamerList[k]);
$.getJSON(userURL, function(data) {
var displayName = data.display_name;
var logo = data.logo;
$.getJSON(streamURL, function(data){
var status, game;
console.log(data);
if (data.stream === null){
status = 'Offline';
game = 'No Content Available';
} else if (data.stream === undefined){
status = 'Not available'
game = 'Channel Closed';
} else {
status = 'Online';
game = data.stream.game;
}
addRow(displayName, logo, status, game);
});
});
}
}
在这个例子中,我使用了两个拖放器(freecodecamp和Mister Rogers),其中一个在线,另一个在线。然而,第二次json调用中的数据正在混乱,在我的应用程序中,我将它们视为离线。它的工作很好,如果我删除freecodecamp或罗杰斯先生,只留下一个流光。但是两个或更多不起作用。我对js很陌生,所以如果你能解释我逻辑上的差距,我会非常感激。干杯。
可能是与您的参数命名冲突。我相信内部函数调用的'data'隐藏了外部'data'变量。尝试重命名其中一个,看看你的结果是否改变。 – JBC
Noup,重命名'data'变量之一并不能解决问题。还要别的吗? – user2963789