使用 setTimeout 实现 setInterval

1,定义函数,传入回调函数和时间,定义控制器t的属性b=true
2,定义递归函数,只有属性b=true的时候才执行回调函数,并且启动setTimeout继续调用本递归函数
3,启动定时器,触发递归函数,返回控制器
function mySetInterval(fn, timeout) {
var t={flag:true}
//递归
function dd(){
if(t.flag){
fn()
setTimeout(dd,timeout)
}
}
//触发
setTimeout(dd,timeout)
return t
}

let i=0
let t=mySetInterval(function(){
console.log(i++)
},500)

setTimeout(()=>{
t.flag=false
},2000)

使用 setTimeout 实现 setInterval最先出现在Python成神之路

版权声明:
作者:ht
链接:https://www.techfm.club/p/29116.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>