Event và EventEmitter
Node.js dựa trên kiến trúc hướng sự kiện không đồng bộ trong đó một số đối tượng nhất định được gọi là emitters định kỳ phát ra (emit) các sự kiện (Events) khiến các Listener Object được gọi lại.
Khi đối tượng Event-Emitter phát ra một sự kiện, tất cả các hàm được gắn vào sự kiện cụ thể đó được gọi một cách đồng bộ.
Mỗi hành động trên máy tính đều được coi là 1 sự kiện, ví dụ như : ghi file, đọc file, kết nối đến cơ sở dữ liệu, đọc cơ sở dữ liệu, lấy dữ liệu ra từ cơ sở dữ liệu, ...
Để sử dụng event trong nodejs, trước tiên chúng ta cần phải sử dụng một module có sẵn trong nodejs đó là events. Tất cả các phương thức hay thuộc tính của event đều là 1 biểu hiện của EventEmitter, do đó để sử dụng các phương thức hay thuộc tính này, chúng ta cần tạo 1 đối tượng EventEmitter.
const events = require('events');
cosnt eventEmitter = new events.EventEmitter();
Trong NodeJS, Listener là một hàm, nó sẽ được gọi để thực thi khi sự kiện xẩy ra. Có thể có 0, 1 hoặc nhiều Listener đang được gắn (bind) với sự kiện đó.
Không tuyền tham số:
eventEmitter.on('clicked', function() {
console.log('Something is clicked!');
});
eventEmitter.addListener('clicked', function() {
console.log('Something is clicked!');
});
Truyền tham số:
// Lắng nghe
eventEmitter.addListener('sendnotife', function(text) {
console.log(text);
});
// Kích hoạt sự kiện
eventEmitter.emit("sendnotife", "Hello hahah");
Tổng kết
Đây là một số ví dụ nhen, hy vọng bài viết này sẽ giúp ích được các bạn. Hy vọng các sẽ áp dụng được vào trong code của các bạn nhé.




