Synkroninen ja asynkroninen koodi JavaScriptissä
Tarkastellaan seuraavaa koodia:
console.log('1');
console.log('2');
On ilmeistä, että ensin suoritetaan ensimmäinen konsolitulostus ja sitten - toinen. Toisin sanoen koodimme komennot suoritetaan vuorotellen - niiden esiintymisjärjestyksessä koodissa. Tällaista koodia kutsutaan synkroniseksi.
Tarkastellaan nyt seuraavaa koodia:
setTimeout(function() {
console.log('1');
}, 3000);
console.log('2');
Tässä tapauksessa komennot eivät suoritu koodin esiintymisjärjestyksessä: ensimmäinen konsolitulostus suoritetaan, kun sen aika koittaa, mutta muu koodi ei odota tätä hetkeä, vaan jatkaa suoritustaan. Tällaista koodia kutsutaan asynkroniseksi.
Asynkronista koodia esiintyy JavaScriptissä melko usein: työskenneltäessä ajastimien kanssa, tapahtumankäsittelijöitä kiinnitettäessä, kuvia ladattaessa, AJAX-teknologian kanssa työskenneltäessä, mikä mahdollistaa sivun osien lataamisen palvelimelta, NodeJS:n kanssa työskenneltäessä, joka edustaa palvelinpuolen JavaScriptiä.