例如:
<script>
function a(){
alert(1)
}
var test = setInterval(a, 1000)
</script>
这样就是每隔1S执行一次函数a
注意:在js中如果定时器不用的时候一定要清除掉,不然会消耗内存,清除可以用
window.clearInterval(intervalID)清除,intervalID是定时器的变量,比如上面的例子中
intervalID就是test
JavaScript中可以实现定时器功能的有两个函数——setTimeout和setInterval,二者的不同是setTimeout只执行一次,而setInterval是以指定的时间间隔重复执行。setTimeout可以使用clearTimeout取消,setInterval可以使用clearInterval取消。
有时,我们会用setTimeout(callback,0)将任务推迟一段很短的时间,但是其实通过process.nextTick(callback)来实现会更好,因为Node中的事件循环在一个处理事件队列的循环里运行,每循环一次称为一个“tick”。使用process.nextTick(callback)回调函数会在事件队列内所有事件处理完毕后,会在下次事件循环之前被调用,即进入下个event loop前执行;而setTimeout(callback,0)把回调延迟到后面的某个event loop执行,具体由设置的延时时间和event loop的执行时间决定。
这样可以保证my_async_function函数是顺序执行。
可以定义一个变量,赋值为要执行的次数,然后每次执行定时器时这个变量自减一,直到为0,清除定时器。
var repeat = 5 // 限制执行次数为5次var timer = setInterval(function() {
if (repeat == 0) {
clearInterval(timer)
} else {
repeat--
// 其他代码...
}
}, 1000)