Kod synchroniczny i asynchroniczny w JavaScript

Rozważmy następujący kod:

javascriptconsole.log('1');
console.log('2');

Oczywiste jest, że najpierw zadziała pierwsze wyświetlenie w konsoli, a potem - drugie. Oznacza to, że polecenia naszego kodu wykonują się po kolei - w kolejności ich następowania w kodzie. Taki kod nazywa się synchronicznym.

Rozważmy teraz następujący kod:

javascriptsetTimeout(function() {
  console.log('1');
}, 3000);

console.log('2');

W tym przypadku polecenia nie wykonują się w kolejności następowania w kodzie: pierwsze wyświetlenie w konsoli wykona się, gdy nadejdzie jego czas, ale reszta kodu nie czeka na ten moment, tylko kontynuuje wykonywanie. Taki kod nazywa się asynchronicznym.

Kod asynchroniczny pojawia się w JavaScript dość często: podczas pracy z timerami, przy wiązaniu procedur obsługi zdarzeń, podczas ładowania obrazów, przy pracy z technologią AJAX, pozwalającą ładować części strony z serwera, przy pracy z NodeJS, który reprezentuje sobie serwerowy JavaScript.