-4

1秒ごとに変数を更新しようとしています。そのため、setTimeout を使用しています。ただし、変数は更新されません。一度だけ0をログアウトします。これが私のコードです

var yes=0;
setTimeout(function () {
    console.log(yes);
    yes++;
}, 1000);​
4

4 に答える 4

3

setIntervalを使用して、clearInterval(yourInterval); を使用して間隔をクリアする必要がある繰り返しを終了します。

ライブデモ

var yes=0;
yourInterval = setInterval(function () {
    console.log(yes);
    yes++;
}, 1000);​
于 2012-11-02T07:08:16.413 に答える
2

setTimeout は 1 回だけ繰り返されます。setInterval を試して、1 秒ごとyesに 1ずつ増加するようにします

ただし、終わりのないループに入った後は、インターバルをクリアすることを忘れないでください

使用してclearInterval()

于 2012-11-02T07:09:16.333 に答える
0

setTimeoutを使用したjsBinデモ

本当にsetTimeoutに固執したい場合は(私はそれを感謝します;))
、すべてを関数にラップして、次のように関数内でそれを呼び出します。

var yes=0;
 
(function loop(){

  setTimeout(function () {
  
    console.log(yes);
    yes++;
    loop();  // loop recall
  
  }, 1000);
  
})();

それ以外の場合は、setIntervalに進みます。

var yes=0;

function count(){  
    console.log(yes);
    yes++;  
}
  
setInterval(count, 1000);
于 2012-11-02T07:13:56.190 に答える
0

setTimeOut メソッドは、あなたの場合は 1000 である特定のタイムアウトの後に一度だけ呼び出されます。代わりに setInterval メソッドを使用してみてください

于 2012-11-02T07:11:09.270 に答える