Frage von Kakaobaum, 20

JS clear Timeout?

Hallo Leute,

wie schon oben gesagt, habe ich eine Frage zu der JS Funktion clearTimeout. Ein Timeout soll gesetzt werden, und sobald eine Aktion ausgeführt wird, bzw. eine Variable sich ändert soll er abgebrochen werden. Andernfalls wird die selbe Aktion nach dem Ablauf des Timeouts auch ausgeführt. Wenn man nichts macht, dann funktioniert der Timeout, allerdings wird er nachdem man eine Taste gedrückt hat, nicht abgebrochen.

Hier ist mein Code(in JS):

var time = null; function wait() { if (done == true) { time = setTimeout(gameMode, inter); } done = false; }

Und später in einer anderen Funktion:

if(key_id == 13)
{   
    if(state==4 || state == 5){
        if(state==4){   state=6; clearTimeout(time);done=true;}
        else{           state=10;clearTimeout(time);done=true;}
    }       
    e.preventDefault();
}
Antwort
von Dory1, 16

Ich nehme an du rufst die wait-Funktion wiederholt auf? Falls ja musst du dir klarmachen, dass der vorherige Wert der time-Variable bei jedem neuen Aufruf unwiederbringlich überschrieben wird. D.h. du kannst immer nur den aktuellen Timeout abbrechen - der zuvor definierte Timeout wird immer ausgeführt.

Du musst dafür sorgen, dass wait erst dann wieder ausgeführt wird, wenn der vorherige Timeout abgelaufen ist.

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten