2017-10-12 20 views
0

JavaScriptを使用してconsole.logの値を1から5までの間にわずかな遅延で数秒間無限にしたいとします。私は、次のコードを実行しようとしていますが、1JavaScriptから無限に整数の間のコンソール値に出力する

var z = 0 
 
    setTimeout(function() { 
 
     if (z==6) {z=0}; 
 
     z+=1; 
 
     console.log(z); 
 
    }, 2000);

それはsetTimeout機能を使ってこれを実装することは可能ですが、印刷後にそれが停止して?

答えて

1

あなたはのsetIntervalを探しています:

var z=0; 
 
setInterval(function() { 
 
    if (z==6) {z=0}; 
 
    z+=1; 
 
    console.log(z); 
 
}, 2000);

0

のsetTimeout()一度だけの機能を実行します。あなたはsetInterval()を使用する必要があります。:

var z=0; 
setInterval(function() { 
if (z==6) {z=0}; 
z+=1; 
console.log(z); 
}, 2000); 
0

これは潜在的な解決策です。 「無限に」実装されていないので、ブラウザは死ぬことはありませんが、あなたが好きなように私を増やすことができます。

for (let i = 0; i < 100; i++) { 
    setTimeout(function() { 
    console.log(i % 5 + 1); 
    }, 2000 * i); 
} 
+1

@アレクサンダーの答えと同じですが、これはブロックして問題があります。 –