如何查找setTimeout()的剩余时间

时间:2010-09-13 12:02:32

标签: javascript

  

可能重复:
  Javascript: find the time left in a setTimeout()?

我正在尝试使用setTimeout()作为在JS中暂停一系列事件的方式 以下是我正在做的事情以及我想在评论中做些什么的示例 - http://jsfiddle.net/8m5Ww/2/

有关如何使用var timeRemaining中剩余的总毫秒数填充var a的任何建议吗?

2 个答案:

答案 0 :(得分:24)

您无法直接获得剩余秒数。 您可以在创建计时器时将时间戳保存在变量中,并使用它来计算下次执行的时间。

<强>示例:

var startTimeMS = 0;  // EPOCH Time of event count started
var timerId;          // Current timer handler
var timerStep=5000;   // Time beetwen calls

// This function starts the timer
function startTimer(){
   startTimeMS = (new Date()).getTime();
   timerId = setTimeout("eventRaised",timerStep);
}


// This function raises the event when the time has reached and
// Starts a new timer to execute the opeartio again in the defined time
function eventRaised(){

  alert('WOP EVENT RAISED!');

  clearTimer(timerId); // clear timer
  startTimer(); // do again
}

// Gets the number of ms remaining to execute the eventRaised Function
function getRemainingTime(){
    return  timerStep - ( (new Date()).getTime() - startTimeMS );
}
  • 这是“动态”创建的自定义示例代码。

答案 1 :(得分:4)

不可能,但如果您将单独的var的内容设置为您设置的时间,您可以轻松地手动识别它。