是否有可能使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
也是如此。
如果你想的setTimeout为“表现”之类的setInterval你应该做这样的事情
var time = function(){
document.body.innerHTML = count;
count++;
setTimeout(time, 1000);
}
time();
是的,这就是我的意思,因为我已经看到一些例子使用'setTimeout'连续工作。 –
谢谢,但你能告诉我这个代码是如何一步一步工作的('执行优先级')吗? –
首先,声明一个名为time的函数。函数将变量'count'写入主体,然后函数每1000毫秒调用一次 – lleon
的setTimeout()方法调用函数或毫秒的指定次数后计算表达式。 SetTimeout 将仅被调用一次。
的setInterval()方法调用函数或在指定的时间间隔计算表达式(以毫秒为单位)。 的setInterval()方法将继续调用函数直到clearInterval()被调用,或窗口被关闭。
谢谢你的回答,但我不是那个意思。 –
因为这是setTimeout'和'setInterval'之间'的区别。 – elclanrs
为什么有人拒绝我的问题,我做了什么错误? –
我没有投票,但你没有给出任何理由,为什么这些功能不能满足你的期望。他们为什么不像他们那样行事?你为什么期望他们表现得一样?有两个功能提供相同的功能会有什么意义?似乎缺乏基础研究,也许是基本的推理。 –