2016-08-23 8 views
0

以下のコードは、コンソールにログオンしたときに「Uncaught SyntaxError:Undefined label」エラーを表示します。JavaScript&JQueryラベリングの問題

私はかなりの研究をしましたが、原因に関する理論がありますが、解決策を見つけるのに役立つドキュメントは見つかりません。ほとんどの場合、誰かがJSラベルをループの直前に置かないと、エラーが発生します。場合によっては、JSCoverが予期しない括弧を入れているなど、誰かのラベルが見えなくなってしまうことがあります。

とにかく、これは私のJQuery $ .getJSON関数の問題です。私はそれを修正する方法を知らない。

他の問題がある場合は、なぜgetJSONがラベルの問題を作成しているのかを私に説明してもらえますか?私のループはwhileループで止まっていなかったので、私はラベルを使っています。たとえそれが私のelseステートメントに当たっていたとしても。あなたがコードを変更する提案があれば、それは非常に高く評価されるでしょう。

featuredLoop: 
for(priorityActive = 0; priorityActive < streamerLength; priorityActive++){ 
    var url = "https://api.twitch.tv/kraken/streams/" + streamer[i]; 
     $.getJSON(url,function(data1){ 
      if(data1.stream === null){ 
       i++; 
       continue featuredLoop; 
      }else if(data1.stream != null){ 
       activeStreamer = streamer[i]; 
       streamerDetails(); 
       break featuredLoop; 
      } 
     }); 
    } 
+2

getJSON内部に呼び出された関数は、非同期の方法です。あなたの問題です。 –

+0

ラベルの使用はお勧めしません。私は彼らの必要性を見たことがない。絶対にループしないでください。代わりに、succesでやり直してください。これはX/Yの問題です – mplungjan

答えて

1

これは私が信じるべきことです。

var i = 0, 
 
    streamer = [] //some array; 
 

 
function getStreamer(i) { 
 
    if (i < streamerLength) { 
 
    var url = "https://api.twitch.tv/kraken/streams/" + streamer[i]; 
 
    $.getJSON(url, function(data1) { 
 
     if (data1.stream === null) { 
 
     i++; 
 
     getStreamer(i); 
 
     } else if (data1.stream != null) { 
 
     activeStreamer = streamer[i]; 
 
     streamerDetails(); 
 
     } 
 
    }); 
 
    } else { 
 
    console.log("not found"); 
 
    } 
 
}

+0

それは動作しませんでした。私は応答をありがとう、ありがとう。 – Royce104

+0

あなたは何を得ているのですか? –

+0

エラーは表示されませんが、コンテンツが読み込まれていません。それは私のページに "streamerDetails();関数を介してコンテンツを表示するまでループするはずです。何も表示していません。テストの後、それは他人の内部に当たったように見えません; (data1.streamは配列内の3人目の人のためにヌルであってはならない) – Royce104