Javascript,Twitch API调用,重复图像/ null返回

时间:2015-08-30 10:44:34

标签: javascript api debugging twitch

https://gist.github.com/IllusionElements/ae5427f9675c276f2195 / http://codepen.io/illusionelements/pen/mebZVR代码

目前正在尝试构建一个twitch api站点,它显示用户及其流。目前我似乎无法弄清楚为什么在线/离线部分没有显示/被添加,并且在这部分代码上,似乎所有内容都返回为null,但是当我在console.log时不是所有东西都会返回null。这是代码:

 for (i; i < user.length; i++) {
        str += "<a href='" + url + "'>"
        str += "<div class='row border new'>";
        str += "<img class='col-md-2' id='profile' src='" + logo + "'>"
        str += "<p class='col-md-5'>";
        str += user[i];
        str += "</p>";
        if (streamsObj !== null) { //if this doesn't evalute as null run it, strangely enough it's running as if its all null
          stat.push(streamsObj.channel.status);
          str += "<span class='col-md-5 circle' id='online'>"
          str += "</span>"
          str += "<p class='col-md-12' id='status'>"
          str += stat[i];
          str += "</p>"
        } else if (streamsObj === null) { //Not being run at all here. It's being skipped//
          str += "<span class='col-md-5 circle' id='offline'>"
          str += "</span>"
          str += "<p class='col-md-12' id='status'>"
          str += "Ooops" + " " + user[i] + " " + "is Offline, maybe later?"
          str += "</p>"

1 个答案:

答案 0 :(得分:0)

你有一个非常复杂的逻辑,但这是因为$.ajax函数运行异步http://api.jquery.com/jquery.ajax/。因此,当您开始为streamsObj分配一个值,然后在调用结果时进行$.ajax来电,streamsObj中的值会发生变化

如果你想保留当前的逻辑,可以使用streamsObj作为对象,并使用“关联数组”,其中键将是用户的用户名。

所以而不是:

var streamsObj = twitch.stream;

你可以拥有类似的东西:

var streamsObj = {} //a global var outside the function
streamsObj['the-username'] = twitch.stream;

另一方面,逻辑现在非常复杂,每当用户想要在所有,在线,离线上进行过滤时,您都会创建api调用。最好只让用户使用一次并使用https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/filter进行过滤。例如http://codepen.io/biancamihai/pen/XbXqdM