Frage Wie finde ich die verbleibende Zeit eines setTimeout () [duplizieren]


Mögliche Duplikate:
Javascript: finde die verbleibende Zeit in einem setTimeout ()? 

Ich versuche zu verwenden setTimeout() als eine Art, eine Reihe von Ereignissen in JS anzuhalten.
Hier ist ein Beispiel, was ich mache und was ich in Kommentaren machen möchte - http://jsfiddle.net/8m5Ww/2/

Irgendwelche Vorschläge, wie ich bevölkern kann var timeRemaining mit den gesamten verbleibenden Millisekunden var a?


9
2017-09-13 12:02


Ursprung


Antworten:


Sie können nicht direkt den Timer in den verbleibenden Sekunden erhalten. Sie können den Zeitstempel in einer Variablen speichern, wenn der Timer erstellt wird, und ihn verwenden, um die Zeit bis zur nächsten Ausführung zu berechnen.

Probe:

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 );
}
  • Dies ist ein benutzerdefinierter Beispielcode, der "on the fly" erstellt wird.

22
2017-09-13 12:20



Nicht möglich, aber wenn Sie den Inhalt einer separaten Variable auf die Zeit einstellen, die Sie festgelegt haben, können Sie dies leicht manuell herausfinden.


4
2017-09-13 12:09