【发布时间】:2013-02-15 12:13:13
【问题描述】:
我只想知道为什么setInterval()和setTimeout()的时间结果不匹配?
语法:
setInterval(code,millisec,lang)
setTimeout(code,millisec,lang)
两者都使用毫秒..
为什么我总是随机得到i?
所以我的测试函数看起来像......
var i = 0;
$("button").click(function() {
var run = setInterval(function(){
i++; $("code").html(i);
},0);
setTimeout(function(){
clearInterval(run);
i = 0;
},2000);
});
为什么结果不显示 2000 ?还是我误解了什么?
如果最小。 setInterval() 的值是 4ms 为什么我没有得到相同的结果?
【问题讨论】:
-
你的问题是,为什么间隔循环没有达到 2000?
-
是的,你的理解是对的 :D @Yoshi
-
嗯,那么答案很简单。即使您请求 0 毫秒的间隔长度,也不能保证获得它,因此不应依赖设置值。如果您正在做的事情是时间敏感的,那么您需要自己跟踪呼叫之间的时间差。
-
当然不是! This information 可能会有所帮助。
标签: javascript timer match settimeout setinterval