Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

ฟังก์ชัน Asynchronous และ Node Event Loop ใน JavaScript


ฟังก์ชัน 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 จะปิดตัวลง