Kod synchroniczny i asynchroniczny w JavaScript
Rozważmy następujący kod:
console.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:
setTimeout(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.