Synkroninen ja asynkroninen koodi JavaScriptissä

Tarkastellaan seuraavaa koodia:

javascriptconsole.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:

javascriptsetTimeout(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ä.