โค้ดแบบซิงโครนัสและอะซิงโครนัสใน JavaScript
พิจารณาโค้ดต่อไปนี้:
console.log('1');
console.log('2');
เห็นได้ชัดว่า การแสดงผลในคอนโซลครั้งแรกจะทำงานก่อน จากนั้นจึงเป็นครั้งที่สอง นั่นคือคำสั่งต่างๆ ของโค้ดเราทำงานตามลำดับ - ตามลำดับที่ปรากฏในโค้ด โค้ดแบบนี้เรียกว่า ซิงโครนัส
ทีนี้มาพิจารณาโค้ดต่อไปนี้:
setTimeout(function() {
console.log('1');
}, 3000);
console.log('2');
ในกรณีนี้ คำสั่งต่างๆ ไม่ได้ทำงานตามลำดับที่ปรากฏในโค้ด: การแสดงผลในคอนโซลครั้งแรกจะทำงานเมื่อถึงเวลาที่กำหนด แต่โค้ดส่วนที่เหลือไม่รอเวลานั้น และยังคงทำงานต่อไป โค้ดแบบนี้เรียกว่า อะซิงโครนัส
โค้ดอะซิงโครนัสเกิดขึ้นค่อนข้างบ่อยใน JavaScript: เมื่อทำงานกับตัวจับเวลา, เมื่อผูกตัวจัดการเหตุการณ์, เมื่อโหลดรูปภาพ, เมื่อทำงานกับเทคโนโลยี AJAX ที่อนุญาตให้โหลดบางส่วนของหน้าจากเซิร์ฟเวอร์, และเมื่อทำงานกับ NodeJS ซึ่งเป็น JavaScript ฝั่งเซิร์ฟเวอร์