当前位置: 首页 > 面试题库 >

javascript:pause setTimeout();

戚森
2023-03-14
问题内容

如果我设置了活动超时var t = setTimeout("dosomething()", 5000)

反正有暂停和恢复吗?

有什么方法可以获取当前超时时间的剩余时间?
还是我必须在一个变量中,设置了超时时间后,存储当前时间,然后我们暂停一下,以获取现在和之后的时间差?


问题答案:

您可以这样包装window.setTimeout,我认为这与您在问题中建议的内容类似:

var Timer = function(callback, delay) {
    var timerId, start, remaining = delay;

    this.pause = function() {
        window.clearTimeout(timerId);
        remaining -= Date.now() - start;
    };

    this.resume = function() {
        start = Date.now();
        window.clearTimeout(timerId);
        timerId = window.setTimeout(callback, remaining);
    };

    this.resume();
};

var timer = new Timer(function() {
    alert("Done!");
}, 1000);

timer.pause();
// Do some stuff...
timer.resume();


 类似资料:

相关阅读

相关文章

相关问答