использование метода $ .getJSON для получения неопределенного значения

1

Im может использовать данные только из ответа JSON, но когда я пытаюсь использовать данные локального хранимого массива в случае, если ответ JSON был нулевым, значение массива становится неопределенным... чтобы быть конкретным, если ответ JSON содержит нуль, я хочу, чтобы мой сохраненный имя массива, которое будет показано, чтобы я мог его обнаружить. пожалуйста, посмотрите мой код:

$(document).ready(function() {

    var baseUrl = "https://wind-bow.glitch.me/twitch-api/streams/";
    var streamers = ["ESL_SC2", "OgamingSC2", "cretetion", "freecodecamp", "storbeck", "habathcx", "RobotCaleb", "noobs2ninjas"];

    for (i=0; i<streamers.length; i++){

    var url = baseUrl+streamers[i];
    $.getJSON(url,function(data){
        if (data.stream === null){
    alert(streamers[i]+" is offline"); //<< this becomes undefined 
        }
        else {
    $('.stream').prepend(
    "<tr><td>" + data.stream.channel.display_name + " Channel   <strong class='connection'>ONLINE</strong> <div class='desc'><p>now streaming"+ data.stream.channel.status+" </p></div> </td></tr>");
    alert(data.stream.channel.display_name + " is streaming "); // <<< this works
    }
});

}

});

  • 0
    "локальный массив данных", какие данные?
  • 0
    вот этот: var streamers = ["ESL_SC2", "OgamingSC2", "cretetion", "freecodecamp", "storbeck", "habathcx", "RobotCaleb", "noobs2ninjas"];
Теги:

1 ответ

0
Лучший ответ

Попробуйте использовать функцию, чтобы передать свой ответ на нее:

var baseUrl = "https://wind-bow.glitch.me/twitch-api/streams/";
var streamers = [
  "ESL_SC2",
  "OgamingSC2",
  "cretetion",
  "freecodecamp",
  "storbeck",
  "habathcx",
  "RobotCaleb",
  "noobs2ninjas"
];

function streamToTable(stream) {
  $.getJSON(baseUrl + stream, function(data) {
    var TR = "";
    if (data.stream === null) {
      TR = "<tr><td>" + stream + "</td><td>OFFLINE</td></tr>"
    } else {
      TR = "<tr><td>" + data.stream.channel.display_name + " Channel </td><td><strong class='connection'>ONLINE</strong> <div class='desc'><p>now streaming " + data.stream.channel.status + " </p></div></td></tr>";
    }
    $('.stream').prepend(TR);
  });
}

$(document).ready(function() {
  streamers.map(streamToTable);
});
td{border-bottom: 1px solid #ddd; vertical-align:top;}
<table class="stream"></table>


<script src="https://code.jquery.com/jquery-3.1.0.js"></script>
  • 0
    спасибо братан, это действительно работает :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню