โค้ดแบบซิงโครนัสและอะซิงโครนัสใน JavaScript

พิจารณาโค้ดต่อไปนี้:

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

เห็นได้ชัดว่า การแสดงผลในคอนโซลครั้งแรกจะทำงานก่อน จากนั้นจึงเป็นครั้งที่สอง นั่นคือคำสั่งต่างๆ ของโค้ดเราทำงานตามลำดับ - ตามลำดับที่ปรากฏในโค้ด โค้ดแบบนี้เรียกว่า ซิงโครนัส

ทีนี้มาพิจารณาโค้ดต่อไปนี้:

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

console.log('2');

ในกรณีนี้ คำสั่งต่างๆ ไม่ได้ทำงานตามลำดับที่ปรากฏในโค้ด: การแสดงผลในคอนโซลครั้งแรกจะทำงานเมื่อถึงเวลาที่กำหนด แต่โค้ดส่วนที่เหลือไม่รอเวลานั้น และยังคงทำงานต่อไป โค้ดแบบนี้เรียกว่า อะซิงโครนัส

โค้ดอะซิงโครนัสเกิดขึ้นค่อนข้างบ่อยใน JavaScript: เมื่อทำงานกับตัวจับเวลา, เมื่อผูกตัวจัดการเหตุการณ์, เมื่อโหลดรูปภาพ, เมื่อทำงานกับเทคโนโลยี AJAX ที่อนุญาตให้โหลดบางส่วนของหน้าจากเซิร์ฟเวอร์, และเมื่อทำงานกับ NodeJS ซึ่งเป็น JavaScript ฝั่งเซิร์ฟเวอร์