如果我设置了活动超时var t = setTimeout("dosomething()", 5000),
var t = setTimeout("dosomething()", 5000)
反正有暂停和恢复吗?
有什么方法可以获取当前超时时间的剩余时间? 还是我必须在一个变量中,设置了超时时间后,存储当前时间,然后我们暂停一下,以获取现在和之后的时间差?
您可以这样包装window.setTimeout,我认为这与您在问题中建议的内容类似:
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();