EventEmitter trong Node.js là gì?

Ngôn ngữ Node.js cho phép người dùng tạo và xử lý các event (sự kiện) tùy chỉnh dễ dàng bằng cách sử dụng các module event. Module Event bao gồm lớp EventEmitter, được sử dụng để xử lý các event tùy chỉnh. Để tìm hiểu rõ hơn EventEmitter trong Node.js là gì? Bạn đọc cùng tham khảo tiếp bài viết dưới đây của Taimienphi.vn.

Trong các bài viết Học Node.js trước Taimienphi.vn đã giới thiệu cho bạn về Event trong Node.js là gì. Bài viết dưới đây Taimienphi.vn sẽ giới thiệu tiếp cho bạn về EventEmitter trong Node.js.

eventemitter trong node js la gi

Tìm hiểu khái niệm EventEmitter trong Node.js

EventEmitter trong Node.js là gì?

Nhiều đối tượng trong Node sẽ phát sinh ra sự kiện, chẳng hạn như net.Server phát sinh sự kiện mỗi khi có kết nối ngang hàng với nó, hay fs.readStream phát sinh sự kiện khi một file được mở. Tất cả đối tượng phát sinh sự kiện này là biến thể của sự kiện EventEmitter.

Như Taimienphi.vn đã đề cập ở trên, lớp EventEmitter nằm trong module event. Để truy cập lớp EventEmitter, bạn sử dụng đoạn mã dưới đây:

// Import events module

var events = require('events');

// Create an eventEmitter object

var eventEmitter = new events.EventEmitter();

Khi một biến thể EventEmitter gặp phải lỗi bất kỳ, nó sẽ tạo ra một event "error". Khi một Listener mới được thêm, event newListener sẽ được kích hoạt và khi Listener bị xóa bỏ, event removeListener sẽ được kích hoạt.

EventEmitter cung cấp nhiều thuộc tính khác nhau như on và emit. Trong đó thuộc tính on được sử dụng để liên kết với hàm event và thuộc tính emit được sử dụng để kích hoạt sự kiện.

Ví dụ về xử lý các sự kiện trong Node.js

Dưới đây là ví dụ về xử lý các sự kiện trong Node.js:

eventemitter trong node js la gi 2

Trong ví dụ trên, bước đầu tiên là import module events, sau đó tạo đối tượng của lớp EventEmitter. Bước tiếp theo là xác định hàm event handler bằng cách sử dụng hàm on(). Phương thức on() yêu cầu tên sự kiện để xử lý và hàm callback được gọi khi một sự kiện được tăng lên.

Hàm emit() sẽ tăng sự kiện được chỉ định. Tham số đầu tiên là tên của sự kiện dưới dạng chuỗi và tiếp theo là đối số.

Một sự kiện có thể được phát sinh ngay cả khi đối số bằng 0 hoặc các giá trị khác. Bạn có thể chỉ định tên bất kỳ cho sự kiện tùy chỉnh trong hàm emit ().

Ngoài ra bạn cũng có thể sử dụng phương thức addListener() để đăng ký một sự kiện như hình dưới đây:

Ví dụ về EventEmitter trong Node.js

eventemitter trong node js la gi 3

Phương thức của EventEmitter trong Node.js

Dưới đây là bảng danh sách các phương thức quan trọng của lớp EventEmitter trong Node.js:

eventemitter trong node js la gi 4

Pattern EventEmitter phổ biến

2 pattern phổ biến được sử dụng để nâng cao và liên kết các sự kiện bằng cách sử dụng lớp EventEmitter trong Node.js:

1. Trả về EventEmitter từ một hàm.

2. Mở rộng lớp EventEmitter.

Trả về EventEmitter từ một hàm

Trong mẫu pattern này, hàm constructor trả về đối tượng EventEmitter, được sử dụng để phát sinh các sự kiện bên trong một hàm. Đối tượng EventEmitter này có thể được sử dụng để đăng ký cho các sự kiện.

Để dễ hình dung hơn, bạn tham khảo ví dụ dưới đây:

eventemitter trong node js la gi

Đầu ra:

eventemitter trong node js la gi

Trong hàm LoopProcessor(), trước hết chúng ta sẽ tạo một đối tượng của lớp EventEmitter, sau đó sử dụng nó để phát sinh các sự kiện BeforeProcess và AfterProcess. Cuối cùng, trả về một đối tượng EventEmitter từ hàm.

Bây giờ chúng ta có thể sử dụng giá trị trả về của hàm LoopProcessor để ràng buộc các sự kiện này bằng cách sử dụng hàm on () hoặc addListener ().

Mở rộng lớp EventEmitter

Trong pattern này, chúng ta có thể mở rộng hàm constructor từ lớp EventEmitter để phát sinh các sự kiện.

Dưới đây là ví dụ về mở rộng lớp EventEmitter:

eventemitter trong node js la gi

Đầu ra:

eventemitter trong node js la gi

Trong ví dụ trên mở rộng hàm LoopProcessor constructor với lớp EventEmitter sử dụng phương thức util.inherits() của module utility. Vì vậy chúng ta có thể sử dụng các phương thức EventEmitter với đối tượng LoopProcessor để xử lý các sự kiện riêng của nó.

Bằng cách này, bạn có thể sử dụng lớp EventEmitter để tăng và xử lý các sự kiện tùy chỉnh trong Node.js.

https://thuthuat.taimienphi.vn/eventemitter-trong-node-js-la-gi-41300n.aspx
Bài viết trên đây Taimienphi.vn vừa giới thiệu cho bạn về EventEmitter trong Node.js là gì? Ngoài ra bạn đọc có thể tham khảo thêm một số bài viết khác đã có trên Taimienphi.vn để tìm hiểu cách cài đặt cũng như cách tạo ứng dụng Node.js như thế nào nhé.

Tác giả: Nguyễn Thành Nam - NTN     (4.0★- 3 đánh giá)  ĐG của bạn?

  

Bài viết liên quan

Buffer trong node.js là gì?
Cách cài đặt Node.js trên UNIX/Linux/Mac OS X, và SunOS
File System (FS) trong Node.js là gì?
Callback trong Node.js là gì?
NPM trong Node.js là gì?
Từ khoá liên quan:

EventEmitter trong Node.js là gì

, EventEmitter trong Node.js, Node.js,

SOFT LIÊN QUAN
  • Node.js for Mac

    Xây dựng, phát triển ứng dụng mạng

    Node.js for Mac là nền tảng mã nguồn mở dựa trên ngôn ngữ lập trình JavaScript với tính năng chính là dựng nhanh các ứng dụng web và phát triển các ứng dụng mạng theo mô hình I/O hướng sự kiện không đồng bộ. Với Node.js ...
  • Node.js Nền tảng quản lý và phát triển ứng dụng mạng hiệu quả
  • Bitnami MEAN for Mac Cài đặt, tạo môi trường phát triển Node.js và MongoDB

Tin Mới

  • Cách tra điểm thi trên Trạng Nguyên Tiếng Việt

    Sau khi hoàn tất bài thi, các em học sinh có thể kiểm tra điểm số ngay trên trang web Trạng Nguyên Tiếng Việt để biết được sức học của mình đến đầu, cải thiện việc học của mình hiệu quả. Nếu các em chưa biết tra điểm thì tham khảo ngay cách tra điểm thi trên Trạng Nguyên Tiếng Việt của Taimienphi.vn.

  • Cách cài đặt Font chữ tiểu học, gõ phông chữ tiểu học nhanh nhất

    Nếu bạn chưa biết cách cài Font chữ tiểu học, hãy xem ngay 5 bước đơn giản từ Taimienphi để dễ dàng thiết lập cho máy tính của mình nhé.

  • 1 tỷ có mấy số 0

    Nếu đang cần tính toán, quy đổi các chữ số hàng tỷ ra các con số hàng trăm, vạn, triệu,..., nhưng không nhớ chính xác 1 tỷ có mấy số 0 hay 1 triệu có mấy số 0 thì bài viết này sẽ rất hữu ích với bạn. Vận dụng cách ghi nhớ các số, chữ số hàng tỷ, bạn đọc sẽ nhanh chóng tính toán và quy đổi sang các giá trị tương ứng

  • Cách tải và chơi GTA San Andreas cho Windows 10

    Trong bộ game GTA thì GTA San Andreas là phiên bản kinh điển của series GTA đình đám, vẫn luôn mang đến khoảng thời gian giải trí tuyệt vời dù bạn đã hoàn thành game bao nhiêu lần đi chăng nữa. Trong bài viết này, Taimienphi.vn sẽ điểm qua một vài thông tin về trò chơi, cũng như chia sẻ cho bạn cách tải và chơi GTA San Andreas trên Windows 10.