是否可以使setTimeout函数在延续中表现得像setInterval?

时间:2013-12-24 01:33:43

标签: javascript settimeout setinterval

我有两个示例代码。
两者具有相同的目的,将变量count增加1,并打印该值 但第一个示例使用setInterval,第二个示例使用setTimeout

var count = 0;

// First example.
var time = setInterval(function() {
   document.body.innerHTML = count;
   count++;
}, 1000);

// Second example.         
var time = setTimeout(function() {
   document.body.innerHTML = count;
   count++;
}, 1000);

为什么在第一个示例中增加变量值并连续打印其值,但在第二个示例中将变量值增加1并打印其值一次然后停止并且不继续?

我问这个问题,因为我看到一些例子也在使用setTimeout继续工作。

3 个答案:

答案 0 :(得分:3)

setTimeout()方法在指定的毫秒数后调用函数或计算表达式。 SetTimeout 只会被调用一次。

setInterval()方法以指定的时间间隔(以毫秒为单位)调用函数或计算表达式。 setInterval()方法将继续调用函数,直到调用clearInterval(),或者窗口关闭。

答案 1 :(得分:2)

真的?

由于setTimeout()setInterval() 不是同一个功能......

您观察到的行为是为每个功能指定的行为。

答案 2 :(得分:0)

如果你想让setTimeout像setInterval一样“行为”,你应该做这样的事情

var time = function(){
    document.body.innerHTML = count;
    count++;
    setTimeout(time, 1000);
}

time();