Синхронен и асинхронен код в JavaScript
Нека разгледаме следния код:
console.log('1');
console.log('2');
Очевидно е, че първо ще се изпълни първия изход в конзолата, а след това - втория. Тоест командите на нашия код се изпълняват една след друга - в реда на тяхното подреждане в кода. Такъв код се нарича синхронен.
Нека сега разгледаме следния код:
setTimeout(function() {
console.log('1');
}, 3000);
console.log('2');
В този случай командите не се изпълняват в реда на подреждането им в кода: първия изход в конзолата ще се изпълни, когато дойде неговото време, но останалия код не чака този момент, а продължава да се изпълнява. Такъв код се нарича асинхронен.
Асинхронен код възниква в JavaScript доста често: при работа с таймери, при свързване на обработващи функции на събития, при зареждане на изображения, при работа с технологията AJAX, която позволява зареждането на части от страницата от сървъра, при работа с NodeJS, който представлява сървърен JavaScript.