JavaScripti ajastussündmused: setTimeout ja setInterval

Programmeerijad kasutavad ajastussündmusi teatud koodi täitmise viivitamiseks või koodi kordamiseks kindla intervalliga.

Nende ülesannete täitmiseks on JavaScripti teegis kaks kohalikku funktsiooni: setTimeout()ja setInterval().

setTimeout

setTimeout() kasutatakse edastatud funktsiooni täitmise edasilükkamiseks määratud aja võrra.

Teil on kaks parameetrit, millele edastate setTimeout(): funktsioon, millele soovite helistada, ja funktsioonide täitmise viivitamise aeg millisekundites.

Pidage meeles, et 1 sekundi jooksul on 1000 millisekundit (ms), seega 5000 ms võrdub 5 sekundiga.

setTimeout() käivitab funktsiooni esimesest argumendist üks kord pärast määratud aja möödumist.

Näide:

let timeoutID; function delayTimer() { timeoutID = setTimeout(delayedFunction, 3000); } function delayedFunction() { alert(“Three seconds have elapsed.”); }

Kui delayTimerfunktsiooni nimetatakse, siis see töötab setTimeout. Pärast 3 sekundi (3000 ms) möödumist käivitub see, delayedFunctionmis saadab teate.

setInterval

Kasutage setInterval()funktsiooni määramiseks, mida hukkamise vahel korrata viivitusega.

Jällegi edastatakse kaks parameetrit setInterval(): funktsioonile, millele soovite helistada, ja ajale millisekundites, et viivitada funktsiooni iga kõnega.

setInterval() jätkab täitmist kuni selle tühjendamiseni.

Näide:

let intervalID; function repeatEverySecond() { intervalID = setInterval(sendMessage, 1000); } function sendMessage() { console.log(“One second elapsed.”); }

Kui teie kood kutsub funktsiooni, repeatEverySecondsiis see töötab setInterval. setIntervalkäivitab funktsiooni sendMessageiga sekundi järel (1000 ms).

clearTimeout ja clearInterval

Ajastussündmuste peatamiseks on olemas ka vastavad kohalikud funktsioonid: clearTimeout()ja clearInterval().

Võib-olla olete märganud, et kõik ülaltoodud taimeri funktsioonid on salvestatud muutujatesse. Kui funktsioon setTimeoutvõi setIntervaltöötab, määratakse sellele number, mis salvestatakse sellesse muutujasse. Pange tähele, et JavaScript teeb seda kõike taustal.

See loodud arv on iga taimeri eksemplari jaoks ainulaadne. See määratud number on ka see, kuidas taimerid tuvastatakse, kui soovite need peatada. Sel põhjusel peate alati seadma taimerile muutuja.

Selguse oma koodi, siis tuleb alati sobitada clearTimeout(), et setTimeout()ja clearInterval()et setInterval().

Taimeri peatamiseks helistage vastavale tühjendusfunktsioonile ja edastage sellele taimeri ID muutuja, mis vastab taimerile, mille soovite peatada. Süntaks sõnadele clearInterval()ja clearTimeout()on sama.

Näide:

let timeoutID; function delayTimer() { timeoutID = setTimeout(delayedFunction, 3000); } function delayedFunction() { alert(“Three seconds have elapsed.”); } function clearAlert() { clearTimeout(timeoutID); }