ฟังก์ชัน Asynchronous โปรแกรมจะทำงานต่อไป ไม่ต้องรอ! วิธีนี้ลดเวลารอของผู้ใช้ JavaScript เองก็เป็นภาษาที่เป็น Asynchronous โดยพื้นฐาน
เช่น หากในโค้ดเรารัน Request ที่หนักและอาจใช้เวลานาน ในกรณีของฟังก์ชัน Asynchronous เวลารอจะนานมาก และผู้ใช้จะไม่สามารถทำอย่างอื่นได้!
ดังนั้นเรามักเลือกใช้โค้ด Asynchronous เมื่อทำงานที่หนักและใช้เวลานาน
ตัวอย่าง Async Function ใน JavaScript −
ตัวอย่าง
console.log('One'); jQuery.get('page.html', function (data) { console.log("Two"); }); console.log('Three');ผลลัพธ์
One, Two, Three
ต่อไป มาดู Event Loop ใน Node.js
Event Loop ถูกสร้างภายใน Thread Schedule ซึ่งกำหนดว่า Thread ควรทำงานอะไรในเวลาใดเวลาหนึ่ง
แอปพลิเคชัน Node.js ประกอบด้วย Callbacks ที่ทำงานเมื่อเกิดเหตุการณ์ต่างๆ เช่น Incoming Connection, I/O Completion, Timeout Expiry, Promise Resolution ฯลฯ Main Thread (ซึ่งก็คือ Event Loop) เป็นผู้ Execute Callbacks ทั้งหมดนี้
เมื่อ Event Loop ทำงาน ในแต่ละรอบ Node จะตรวจสอบว่ากำลังรอ Asynchronous I/O หรือ Timers อยู่หรือไม่ ถ้าไม่พบอะไร Node จะปิดตัวลง