清除使用setTimeout模拟的setInterval,你需要稍微修改一下代码,使其可以返回一个可以用来清除定时器的对象。以下是一个例子:

function myInterval(func, delay) {
    var timeoutId = null;
    function interval() {
        func();
        timeoutId = setTimeout(interval, delay);
    }
    timeoutId = setTimeout(interval, delay);
    return {
        clear: function() {
            clearTimeout(timeoutId);
        }
    };
}

// 使用方法
var myIntervalId = myInterval(function() {
    console.log("这是一个定期执行的消息!");
}, 2000); // 每2000毫秒执行一次,也就是每2秒执行一次

// 当你想要取消定时器时
myIntervalId.clear();

如果你需要清除使用setTimeout模拟的setInterval,你需要稍微修改一下代码,使其可以返回一个可以用来清除定时器的对象。以下是一个例子:

posted @ 2023-11-09 15:29  小林222  阅读(57)  评论(0)    收藏  举报