ใน Node.js, ระบบการจัดการเหตุการณ์ (Event system) เป็นส่วนสำคัญที่ช่วยให้คุณสามารถทำงานกับเหตุการณ์และประสานกับโมดูลที่ใช้งานแบบไม่บล็อก (non-blocking) ได้ โดยใช้ EventEmitter ซึ่งเป็นคลาสหลักที่ใช้ในการสร้างและจัดการเหตุการณ์ใน Node.js
นี่คือวิธีการใช้งานระบบการจัดการเหตุการณ์ (Event system) ใน Node.js:
- การนำเข้า EventEmitter: ในโปรเจคของคุณจะต้องนำเข้าโมดูล
events
และสร้างอ็อบเจ็กต์EventEmitter
โดยใช้คลาสEventEmitter
ตัวอย่างเช่น:
1 | const EventEmitter = require('events'); |
- การสร้างเหตุการณ์: คุณสามารถสร้างเหตุการณ์โดยใช้เมธอด
emit
บนอ็อบเจ็กต์EventEmitter
ตัวอย่างเช่น:
1 | myEmitter.emit('customEvent', arg1, arg2); |
- การลงฟังเตอร์ (Event Listeners): เพื่อรับเหตุการณ์ที่ถูกสร้างขึ้น คุณต้องลงฟังเตอร์ (event listener) โดยใช้เมธอด
on
หรือaddListener
บนอ็อบเจ็กต์EventEmitter
ตัวอย่างเช่น:
1 | myEmitter.on('customEvent', (arg1, arg2) => { |
การจัดการเหตุการณ์ที่ถูกเรียก: เมื่อเหตุการณ์ถูกเรียก (emit) ลิสเตอร์ (listener) ที่ถูกลงทะเบียนกับเหตุการณ์นั้นจะถูกเรียกโดยอัตโนมัติ ในตัวอย่างข้างบน เมื่อ
customEvent
ถูกเรียก ลิสเตอร์ที่ถูกลงทะเบียนกับเหตุการณ์customEvent
จะทำงานและแสดงข้อความ.การลบลิสเตอร์: หากคุณต้องการลบลิสเตอร์ที่ถูกลงทะเบียนกับเหตุการณ์ สามารถใช้เมธอด
removeListener
หรือoff
บนอ็อบเจ็กต์EventEmitter
เพื่อลบลิสเตอร์ที่เซ็ตเอาไว้:
1 | myEmitter.removeListener('customEvent', listenerFunction); |
- การใช้งานแค่ครั้งเดียว (Once): คุณสามารถใช้
once
เพื่อลงทะเบียนลิสเตอร์ที่จะถูกเรียกเพียงครั้งเดียวเมื่อเหตุการณ์เกิดขึ้น:
1 | myEmitter.once('customEvent', () => { |
ระบบการจัดการเหตุการณ์ (Event system) ใน Node.js เป็นสิ่งสำคัญในการพัฒนาแอปพลิเคชันและเซิร์ฟเวอร์ที่ทำงานแบบไม่บล็อก (non-blocking) และช่วยให้คุณสามารถตอบสนองกับเหตุการณ์และการกระทำต่าง ๆ ได้อย่างมีประสิทธิภาพใน Node.js.