JavaScript-da sinxron va asinxron kod

Quyidagi kodni ko'rib chiqaylik:

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

Aniqki, avval konsolga birinchi chiqarish ishlaydi, keyin esa - ikkinchi. Ya'ni kodimizning buyruqlari navbat bilan - kodda kelgan tartibda bajariladi. Bunday kod sinxron deb ataladi.

Endi quyidagi kodni ko'rib chiqaylik:

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

console.log('2');

Bunday holda buyruqlar kodda kelgan tartibda bajarilmaydi: birinchi konsolga chiqarish o'z vaqti kelganda bajariladi, lekin qolgan kod bu paytni kutmaydi, balki bajarilishni davom ettiradi. Bunday kod asinxron deb ataladi.

Asinxron kod JavaScript-da etarlicha tez-tez paydo bo'ladi: taymerlar bilan ishlashda, hodisa ishlovchilarini bog'lashda, rasmlarni yuklashda, sahifaning qismlarini serverdan yuklashga imkon beruvchi AJAX texnologiyasi bilan ishlashda, serverli JavaScriptni ifodalovchi NodeJS bilan ishlashda.