1、简单区分setTimeout和setInterval
setInterval在执行完一次代码之后, 经过了那个固定的时间间隔, 它还会自动重复执行代码, 而setTimeout只执行一次那段代码。
2、利用setTimeout实现setInterval
function mySetInterval(fn, wait) {
let timer = null
function interval() {
fn()
timer = setTimeout(todo, wait);
}
interval()
}
带清除定时器版本
function mySetInterval(fn, wait) {
let timer = null
function interval() {
fn()
timer = setTimeout(todo, wait);
}
interval()
return () => clearTimeout(timer) //可以取消掉
}
let a = mySetInterval(() => {
console.log(111);
}, 1000)
//可以清除掉定时器
setTimeout(() => {
a() //可以取消掉
}, 1000);