Как я могу пройти через - PullRequest
0 голосов
/ 22 мая 2018
var url1="https://wind-bow.glitch.me/twitch-api/streams/";
var channelList= ["channel1","channel2",channel3"];



//I am trying to create for loop to define url with different channel names.

for(var i=0;i<channelList.length;i++){
  var url="https://wind-bow.glitch.me/twitch-api/channels/" + channelList[i];
  $.getJSON(url1+channelList[i],function(data){

    //When the user click off button,I want to show offline channels.
    $("#off").on("click", () => {
      if(data.stream === null) {
        $.getJSON(url,function(seconddata){

          $("#main").append("<div class='row' style='margin-top:5px;'><div class='col-md-4'><p><img src='"+seconddata.logo+"'width='42' height='42'>"+"      "+"<a href='"+seconddata.url+"' target=_blank>"+seconddata.display_name+"</a></p></div></div>")   
      });
    }
  });      
});

Здравствуйте, я действительно новичок в кодировании.В настоящее время я следую за FreeCodeCamp и борюсь с проектом просмотра Twitch.Но я застрял в коде :) Я хочу создать цикл for и использовать API для получения данных всех каналов.Но я получаю только данные последнего канала, потому что «i» увеличивается вне функций jquery.Это не проходит через функции jquery.Как я могу это исправить?:)

Спасибо заранее за ваши ответы.

Примечание: Извините за мой английский.Это не мой родной язык.:) Я надеюсь, вы понимаете мою проблему.

1 Ответ

0 голосов
/ 22 мая 2018

Попробуйте логику, как в следующем фрагменте кода.

var url1="https://wind-bow.glitch.me/twitch-api/streams/";
var channelList= ["channel1","channel2","channel3"];

var allData = [];

//I am trying to create for loop to define url with different channel names.

for(var i=0;i<channelList.length;i++) {
  var url="https://wind-bow.glitch.me/twitch-api/channels/" + channelList[i];
  $.getJSON(url1+channelList[i],function(data){
    allData.push(data);
  });
};

   //When the user click off button,I want to show offline channels.
    $("#off").on("click", () => {
      for (var j=0;j<channelList.length; j++) {
        var data = allData[j];
        if(data.stream === null) {
        $.getJSON(url,function(seconddata){

          $("#main").append("<div class='row' style='margin-top:5px;'><div class='col-md-4'><p><img src='"+seconddata.logo+"'width='42' height='42'>"+"      "+"<a href='"+seconddata.url+"' target=_blank>"+seconddata.display_name+"</a></p></div></div>") 


        });
       }
    }
  });      
...