Tìm hiểu Event trong Node.js

Các bài viết trước Taimienphi.vn đã giới thiệu cho bạn về REPL Terminal, NPM trong Node.js là gì. Để tiếp tục chủ đề về Node.js, cùng tham khảo tiếp bài viết dưới đây của Taimienphi.vn để tìm hiểu Event trong Node.js là gì nhé.

Bạn đọc có thể tham khảo thêm một số bài viết Học Node.js khác đã có trên Taimienphi.vn để tìm hiểu rõ hơn về cách cài đặt Node.js cũng như cách tạo ứng dụng Node.js như thế nào nhé. Tham khảo tiếp nội dung bài viết dưới đây của Taimienphi.vn để tìm hiểu Event trong Node.js.

tim hieu event trong node js

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

Event trong Node.js là gì

Trong các ứng dụng Node.js, các khái niệm Event và Callback được sử dụng để hỗ trợ xử lý đồng thời. Vì các ứng dụng Node.js là ứng dụng Single Threaded và các API của Node là không đồng bộ (asynchronous), vì vậy nó sử dụng hàm async để duy trì sự đồng thời.

Node.js sử dụng Observer Pattern. Các Thread trong Node.js sẽ giữ một Event Loop, bất cứ khi nào có tác vụ được hoàn thành, nó sẽ kích hoạt Event tương ứng để thông báo cho hàm Event Listener sẵn sàng thực thi.

Mô hình lập trình hướng sự kiện (Event Driven Programming)

Node.js sử dụng lập trình hướng sự kiện, ngay sau khi khởi động máy chủ, nó sẽ khởi tạo các biến, khai báo các hàm và chờ sự kiện xảy ra. Đó là lý do giải thích tại sao Node.js nhanh hơn so với các công nghệ tương tự khác.

Vòng lặp chính trong ứng dụng mô hình hướng sự kiện sẽ lắng nghe các sự kiện, sau đó kích hoạt hàm callback nếu phát hiện có sự kiện.

Sự khác nhau giữ Event và Callback trong Node.js

Mặc dù Event và Callback có nhiều điểm giống nhau, xong trên thực tế giữa chúng cũng có nhiều điểm khác nhau. Hàm Callback được gọi khi một hàm không đồng bộ trả về kết quả mà Event Handler được xử lý trên Observer Pattern.

Bất cứ khi nào Event được kích hoạt, hàm Listener sẽ bắt đầu thực thi. Node.js được tích hợp nhiều event khác nhau thông qua các module event và lớp EventEmitter được sử dụng để liên kết các event và event listener.

Để liên kết lớp EventEmitter với Event và Event Listener, sử dụng cú pháp:

// Import events module

var events = require('events');

// Create an eventEmitter object

var eventEmitter = new events.EventEmitter();

tim hieu event trong node js 2

Để liên kết Event Handler với Event sử dụng cú pháp:

// Bind event and even handler as follows

eventEmitter.on('eventName', eventHandler);

tim hieu event trong node js 3

Để kích hoạt Event sử dụng cú pháp:

// Fire an event

eventEmitter.emit('eventName');

tim hieu event trong node js 4

Ví dụ về Event trong Node.js

Tạo file js đặt tên là main.js có chứa đoạn mã dưới đây:

tim hieu event trong node js 5

Bước tiếp theo mở Node.js command prompt và nhập lệnh dưới đây vào để chạy thử chương trình và kiểm tra kết quả đầu ra:

node main.js

tim hieu event trong node js 6

Kết quả trả về có dạng như dưới đây:

connection successful.

data received successfully.

Program Ended.

Ứng dụng Node hoạt động như thế nào?

Trong ứng dụng Node, hàm async bất kỳ sẽ chấp nhận callback làm tham số cuối cùng và hàm callback chấp nhận một lỗi làm tham số đầu tiên. Cùng xem lại ví dụ trước, tạo một file text đặt tên là input.txt có chứa nội dung dưới đây:

Tutorials Point is giving self learning content

to teach the world in simple and easy way!!!!!

tim hieu event trong node js 7

Tiếp theo tạo một file js đặt tên là main.js, có chứa đoạn mã dưới đây:

var fs = require("fs");

fs.readFile('input.txt', function (err, data) {

if (err) {

console.log(err.stack);

return;

}

console.log(data.toString());

});

console.log("Program Ended");

tim hieu event trong node js 8

Trong đó fs.readFile() là một hàm async được sử dụng để đọc file. Nếu có lỗi xảy ra trong quá trình đọc, đối tượng err sẽ chứa lỗi tương ứng, hoặc data sẽ chứa nội dung của file readFile. Sau đó hàm sẽ chuyển err và data vào hàm callback sau khi quá trình đọc file kết thúc, và cuối cùng là in nội dung.

Program Ended

Tutorials Point is giving self learning content

to teach the world in simple and easy way!!!!!

tim hieu event trong node js 9

Trên đây bạn đọc vừa cùng Taimienphi.vn tìm hiểu Tìm hiểu Event trong Node.js là gì. Ngoài ra nếu muốn tìm hiểu chi tiết hơn về NPM hay Callback trong Node.js, bạn đọc có thể tham khảo thêm một số bài viết khác đã có trên Taimienphi.vn để biết thêm thông tin nhé.

https://thuthuat.taimienphi.vn/tim-hieu-event-trong-node-js-41301n.aspx
Trong các bài viết tiếp theo Taimienphi.vn sẽ giới thiệu tiếp cho bạn về lớp EventEmitter trong Node.js nhé.

Tác giả: Phạm Nhất Vương     (4.0★- 3 đánh giá)  ĐG của bạn?

  

Bài viết liên quan

Làm quen với Express Framework trong Node.js
Buffer trong node.js là gì?
Đối tượng Global trong Node.js
Utility Module và Web Module trong Node.js là gì?
Học Node.js từ cơ bản tới nâng cao
Từ khoá liên quan:

Tìm hiểu Event trong Node.js

, Event trong Node.js, Node.js,

SOFT LIÊN QUAN
  • Node.js

    Quản lý và sắp xếp các ứng dụng mạng

    Node.js cung cấp nhiều tính năng hữu ích và hỗ trợ người dùng nghiên cứu và tìm hiểu cách sử dụng bộ mã nguồn JavaScript này qua tập tin hỗ trợ phong phú cho giao diện ngôn ngữ lập trình API, phục vụ quản lý và sắp xếp c ...

Tin Mới