美文网首页
setTimeout实现setInterval功能

setTimeout实现setInterval功能

作者: 小豆soybean | 来源:发表于2018-09-23 21:08 被阅读0次

注意:是在setTimeout中递归调用setTimeout。
使用arguments.callee来调用自身是不行的。因为包了一层setTimeout

function show(n) {
    var arr = [];
    return (function () {
        arr.unshift(n);
        n--;
        if (n != 0) {
            arguments.callee();
        }
        return arr;
    })()
}
console.log(show(5))
let count = 0;
var fun = null;
var flag ;
function counter(delay,times){
   
    //  var count= 0;
    count += 1;
   
    if(count <= times){
        flag = true;
    }else{
        flag = false;
    }
    if(flag){
        fun = setTimeout(
            function(){
                console.log(count)
                counter(delay,times)
            }
            ,delay)
    }else{
        clearTimeout(fun);
    }
}

相关文章

网友评论

      本文标题:setTimeout实现setInterval功能

      本文链接:https://www.haomeiwen.com/subject/lkvqoftx.html