在最近的学习官方文档过程中,经常用到定时的操作,一个是setTimeout,另一个是setInterval,那这两者有什么区别呢。
setTimeout
设定一个定时器,在定时到期以后执行注册的回调函数。
number setTimeout(function callback, number delay, any rest)
1、function callback 表示回调函数
2、number delay 表示延迟的时间,函数的调用会在该延迟之后发生,单位 ms。
3、any rest 表示param1, param2, ..., paramN 等附加参数,它们会作为参数传递给回调函数。
4、number 表示定时器的编号。这个值可以传递给 clearTimeout 来取消该定时。
setTimeout(()=>{
console.info("我只执行一次")
}, 2000)
setInterval
设定一个定时器,按照指定的周期(以毫秒计)来执行注册的回调函数。
number setInterval(function callback, number delay, any rest)
1、function callback 表示回调函数
2、number delay 表示执行回调函数之间的时间间隔,单位 ms。
3、any rest 表示param1, param2, ..., paramN 等附加参数,它们会作为参数传递给回调函数。
4、返回值number 表示定时器的编号。这个值可以传递给 clearInterval 来取消该定时。
onShow: function () {
this.timer= setInterval(()=>{
console.info("我循环执行")
}, 2000)
},
onUnload: function () {
clearInterval(this.timer); //取消该定时
},
总结:
setTimeout用于延迟执行某方法或功能,单次的。
setInterval用于循环延迟执行某方法或功能,多次的,直到clearInterval取消。