面试官:实现一下setInterval叭。

523 阅读1分钟

在平常开发中,我们很少用到setInterval。因为在事件循环中,setInterval的延迟可能会积累,所以setTimeout比setInterval要准确。接下来就用setTimeout来模拟实现setInterval。

function mySetInterval(fn, timeout) {
    const timer = {
        flag: true
    }

    function foo() {
        if (timer.flag) {
            fn();
            setTimeout(foo, timeout)
        }
    }

    setTimeout(foo, timeout);

    return timer;
}

//测试
mySetInterval(function () { console.log(1); }, 1000)

image.png


记录记录!