用setTimeout实现setInterval

残北

关注

阅读 174

2022-02-24

// 用setTimeOut实现setInterval
        let timeWorker = {};
        function myInterval(fn,time) {
            let key = Symbol();
            let execute = ()=>{
                timeWorker[key]=setTimeout(()=>{
                    fn();
                    execute();
                },time);
            };
            execute();
            return key;
        }
        function myClearInterval(key){
            if(key in timeWorker){
                clearTimeout(timeWorker[key]);
                delete timeWorker[key];
            }
        } 
        let a = myInterval(function(){
            console.log("333");
        },1000);

        setTimeout(()=>{
            myClearInterval(a);
        },4000);

精彩评论(0)

0 0 举报