是否有可能使setTimeout函数的行为像继续中的setInterval一样?

问题描述:

我有两个示例代码。
两者是相同的目的,以增加可变count 1,并且打印该值。
但是用setTimeout第一示例使用setInterval,和第二个例子。是否有可能使setTimeout函数的行为像继续中的setInterval一样?

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也是如此。

+5

因为这是setTimeout'和'setInterval'之间'的区别。 – elclanrs

+0

为什么有人拒绝我的问题,我做了什么错误? –

+1

我没有投票,但你没有给出任何理由,为什么这些功能不能满足你的期望。他们为什么不像他们那样行事?你为什么期望他们表现得一样?有两个功能提供相同的功能会有什么意义?似乎缺乏基础研究,也许是基本的推理。 –

如果你想的setTimeout为“表现”之类的setInterval你应该做这样的事情

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

time(); 
+0

是的,这就是我的意思,因为我已经看到一些例子使用'setTimeout'连续工作。 –

+0

谢谢,但你能告诉我这个代码是如何一步一步工作的('执行优先级')吗? –

+0

首先,声明一个名为time的函数。函数将变量'count'写入主体,然后函数每1000毫秒调用一次 – lleon

真的吗?

因为setTimeout()setInterval()是不一样的功能...

你所观察到的行为是什么每个功能被指定。

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

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

+1

谢谢你的回答,但我不是那个意思。 –