function doKeyDown(event) {
switch (event.keyCode) {
case 32:
/* Space bar was pressed */
if (x == 4) {
setInterval(drawAll, 20);
}
else {
setInterval(drawAll, 20);
x += dx;
}
break;
}
}
Hallo zusammen,
Ich möchte drawAll()
einmal aufrufen und keine Schleife erstellen , die drawAll
immer wieder aufruft. Soll ich dafür eine rekursive Methode verwenden oder sollte ich verwenden clearInterval
?
Bitte sag mir auch zu benutzen clearInterval
? Vielen Dank :)
quelle
setInterval
odersetTimeout
.setInterval(doStuff);
. Das Übergeben eines Strings ansetInterval
ist ein impliziter Aufruf voneval
. Übergeben Sie stattdessen am besten die Funktionsreferenz .Verwenden Sie
setTimeout(drawAll, 20)
stattdessen. Das führt die Funktion nur einmal aus.quelle
Ich habe Winkel mit Elektron verwendet,
In meinem Fall wird
setInterval
ein Nodejs Timer-Objekt zurückgegeben. was, als ich anriefclearInterval(timerobject)
, nicht funktionierte.Ich musste zuerst die ID abrufen und clearInterval anrufen
clearInterval(timerobject._id)
Ich habe viele Stunden damit gekämpft. hoffe das hilft.
quelle
Randnotiz - Wenn Sie separate Funktionen zum Festlegen und Löschen von Intervallen verwenden möchten, muss die Intervallvariable für alle zugänglich sein, und zwar im Bereich "relativ global" oder "eine Ebene höher":
quelle