Events ใน node.js

ใน Node.js, ระบบการจัดการเหตุการณ์ (Event system) เป็นส่วนสำคัญที่ช่วยให้คุณสามารถทำงานกับเหตุการณ์และประสานกับโมดูลที่ใช้งานแบบไม่บล็อก (non-blocking) ได้ โดยใช้ EventEmitter ซึ่งเป็นคลาสหลักที่ใช้ในการสร้างและจัดการเหตุการณ์ใน Node.js

นี่คือวิธีการใช้งานระบบการจัดการเหตุการณ์ (Event system) ใน Node.js:

  1. การนำเข้า EventEmitter: ในโปรเจคของคุณจะต้องนำเข้าโมดูล events และสร้างอ็อบเจ็กต์ EventEmitter โดยใช้คลาส EventEmitter ตัวอย่างเช่น:
1
2
const EventEmitter = require('events');
const myEmitter = new EventEmitter();
  1. การสร้างเหตุการณ์: คุณสามารถสร้างเหตุการณ์โดยใช้เมธอด emit บนอ็อบเจ็กต์ EventEmitter ตัวอย่างเช่น:
1
myEmitter.emit('customEvent', arg1, arg2);
  1. การลงฟังเตอร์ (Event Listeners): เพื่อรับเหตุการณ์ที่ถูกสร้างขึ้น คุณต้องลงฟังเตอร์ (event listener) โดยใช้เมธอด on หรือ addListener บนอ็อบเจ็กต์ EventEmitter ตัวอย่างเช่น:
1
2
3
myEmitter.on('customEvent', (arg1, arg2) => {
console.log(`Received arguments: ${arg1}, ${arg2}`);
});
  1. การจัดการเหตุการณ์ที่ถูกเรียก: เมื่อเหตุการณ์ถูกเรียก (emit) ลิสเตอร์ (listener) ที่ถูกลงทะเบียนกับเหตุการณ์นั้นจะถูกเรียกโดยอัตโนมัติ ในตัวอย่างข้างบน เมื่อ customEvent ถูกเรียก ลิสเตอร์ที่ถูกลงทะเบียนกับเหตุการณ์ customEvent จะทำงานและแสดงข้อความ.

  2. การลบลิสเตอร์: หากคุณต้องการลบลิสเตอร์ที่ถูกลงทะเบียนกับเหตุการณ์ สามารถใช้เมธอด removeListener หรือ off บนอ็อบเจ็กต์ EventEmitter เพื่อลบลิสเตอร์ที่เซ็ตเอาไว้:

1
myEmitter.removeListener('customEvent', listenerFunction);
  1. การใช้งานแค่ครั้งเดียว (Once): คุณสามารถใช้ once เพื่อลงทะเบียนลิสเตอร์ที่จะถูกเรียกเพียงครั้งเดียวเมื่อเหตุการณ์เกิดขึ้น:
1
2
3
myEmitter.once('customEvent', () => {
console.log('This listener will be called only once.');
});

ระบบการจัดการเหตุการณ์ (Event system) ใน Node.js เป็นสิ่งสำคัญในการพัฒนาแอปพลิเคชันและเซิร์ฟเวอร์ที่ทำงานแบบไม่บล็อก (non-blocking) และช่วยให้คุณสามารถตอบสนองกับเหตุการณ์และการกระทำต่าง ๆ ได้อย่างมีประสิทธิภาพใน Node.js.