Asked Jun 11th, 2022 4:27 a.m. 114 0 0
  • 114 0 0
+3

Lợi ích của việc sử dụng Event Emitter trong NodeJS

Share
  • 114 0 0

Chào mọi người, bữan nay mình đang tìm hiểu về NodeJS đến phần EventEmitter thì mình có một thắc mắc nhỏ. Giả sử mình có đoạn code sử dụng EventEmitter

var Emitter = require("./emitter");
var emitter = new Emitter();

emitter.on("denvang", function tocdo() {
  console.log("Giảm tốc độ");
});

emitter.on("denvang", function dunglai() {
  console.log("Dừng lại trước vạch giới hạn");
});

var tinhieu = [3, 2, 1];//1: đèn đỏ, 2: đèn vàng, 3: đèn xanh
for (var th of tinhieu) {
  if (th == 2) {
    emitter.emit("denvang");
  }
}

link mình tham khảo từ đây : https://vncoder.vn/bai-hoc/nodejs-su-kien-emitter-322

Mình có thể hiểu cách hoạt động của nó, nhưng mình không hiểu ý tại sao thay vì việc phát ra một tín hiệu sao chúng ta không gọi thằng đến hàm cần thực thi luôn nhỉ.

Cụ thể ý mình là thay vì : emitter.emit("denvang");

Sao mình không gọi luôn: tocdo()

Mình đọc qua các tài liệu trên mạng thì chỉ thấy giải thích cách hoạt động của EventEmitter thôi chứ chưa thấy chỗ nào đưa ra được giải thích về điểm khác biệt giữa hai cách làm trên cả.

Các bạn có thể giải thích thêm giúp mình không.

Avatar Semi Dev @thinhtranhnvn
Jun 11th, 2022 7:00 a.m.

Bạn có thể tìm và đọc một vài bài viết giới thiệu về Lập Trình Hướng Sự Kiện Event-Driven Programming. Mỗi một chương trình có thể được xem như một môi trường mô phỏng lại cuộc sống thực tế từ góc nhìn khách quan. Trong đó thì các chương trình con kiểu như lamViecNay() hay lamViecKia() có thể xem như quyết định đáp ứng của các cá nhân khi có một sự kiện xảy ra.

Nếu như chỉ xét tới tiêu chí mô phỏng lại các hành động của các cá thể từ cuộc sống thực tế thì tiến trình học từ lập trình căn bản chung chung của mọi người sẽ đều đi qua các giai đoạn là:

  1. Học các câu lệnh và biểu thức đơn và tổ hợp thành các chương trình con để mô tả các phương thức hành động.
  2. Tìm hiểu về việc quản lý các tiến trình thực hiện các hành động được thực thi bất đồng bộ asynchronous.

Tới giai đoạn thứ hai thì cái mô hình Event-Driven Programming gần như là logic mô phỏng trực quan nhất nên tài liệu cũng nhiều lắm.

+1
| Reply
Share
Avatar Anh Tran @thanh_tuan
Jun 14th, 2022 12:09 a.m.

@semiarthanoi hix... mình thấy khó hỉu quá bạn ạ, vẫn thấy hơi mơ hồ và trừu tượng ạ

0
| Reply
Share
Viblo
Let's register a Viblo Account to get more interesting posts.