+3
Lợi ích của việc sử dụng Event Emitter trong NodeJS
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.
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()
haylamViecKia()
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à:
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.
@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 ạ