Tapahtumakierto (event loop) JavaScriptissa
KoodaaminenJavaScriptissa tapahtumakierto (event loop) on mekanismi, joka jatkuvasti tarkistaa viestijonoa tapahtumille ja suorittaa ne peräkkäin. Se varmistaa, että koodin suoritus ei jää jumiin aikaa vieviin tehtäviin.
Tässä yksinkertaistettuna tapahtumakierto:
- Kutsupino (Call Stack): JavaScript ylläpitää kutsupinoa, joka pitää kirjaa parhaillaan suoritettavasta funktiosta tai koodilohkosta.
- Takaisinkutsujono (Callback Queue): Asynkroniset tehtävät, kuten käyttäjän syötteet, ajastimet tai verkkopyynnöt hoidetaan selaimessa. Kun nämä tehtävät ovat valmiita, ne sijoitetaan takaisinkutsujonoon.
- Tapahtumakierto (Event Loop): Tapahtumakierto tarkistaa jatkuvasti kutsupinoa ja takaisinkutsujonoa. Jos kutsupino on tyhjä, se ottaa ensimmäisen takaisinkutsun jonosta ja asettaa sen kutsupinoon suoritettavaksi.
- Suoritus: Takaisinkutsu suoritetaan ja prosessi toistuu.
Tässä yksinkertainen esimerkki JavaScript-koodista, joka havainnollistaa tapahtumakiertoa asynkronisen tapahtuman avulla. Koodissa on (setTimeout) funktio, joka asettaa aikakatkaisun ja sitten tulostaa viestin, kun aikakatkaisu päättyy. Samalla voit nähdä, miten tapahtumakierto sallii muiden tehtävien suorittamisen aikakatkaisun odotusaikana.
console.log("Aloitus");
// Asynkroninen tehtävä: Aikakatkaisu 2 sekunnin kuluttua
setTimeout(function() {
console.log("Timeout suoritettu 2 sekunnin jälkeen");
}, 2000);
console.log("Lopetus");
// Koodi jatkuu täällä välittömästi aikakatkaisun asettamisen jälkeen
Koodin tulostus:
- Aloitus
- Lopetus
- Timeout suoritettu 2 sekunnin jälkeen
Näyttää siltä, että sinulla on mahdollisuus olla ensimmäinen kommentoija! Jäikö jotain kysyttävää artikkelista tai haluatko antaa palautetta? Jätä kommentti ja aloita kekustelu.
Kommentit