-4

我正在尝试每秒更新一个变量。出于这个原因,我正在使用 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 只会重复一次,尝试 setInterval 以便每秒递增yes1

但请记住在其他时间进入一个永无止境的循环之后清除间隔

使用clearInterval()

于 2012-11-02T07:09:16.333 回答
0

setTimeOut 方法仅在特定超时后调用一次,在您的情况下为 1000,请尝试改用 setInterval 方法

于 2012-11-02T07:11:09.270 回答
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 回答