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;
}
}
Cześć wszystkim,
Chcę zadzwonić drawAll()
raz, nie tworząc pętli, która wywołuje drawAll
wielokrotnie, czy powinienem użyć do tego metody rekurencyjnej, czy powinienem użyć clearInterval
?
Również proszę, powiedz mi, aby użyć clearInterval
? Dzięki :)
źródło
setInterval
lubsetTimeout
.setInterval(doStuff);
. Przekazanie ciągu dosetInterval
jest niejawnym wywołaniemeval
. Zamiast tego najlepiej podać odwołanie do funkcji .Użyj
setTimeout(drawAll, 20)
zamiast tego. To wykonuje funkcję tylko raz.źródło
Użyłem kątowego z elektronem,
W moim przypadku
setInterval
zwraca obiekt Nodejs Timer. które, kiedy zadzwoniłemclearInterval(timerobject)
, nie zadziałało.Najpierw musiałem zdobyć identyfikator i zadzwonić do clearInterval
clearInterval(timerobject._id)
Zmagałem się z tym przez wiele godzin. mam nadzieję że to pomoże.
źródło
Uwaga dodatkowa - jeśli chcesz używać oddzielnych funkcji do ustawiania i czyszczenia interwału, zmienna interwału musi być dostępna dla nich wszystkich, w zakresie „względnym globalnym” lub „jeden poziom wyżej”:
źródło