NODEJS rất thích hợp cho các ứng dụng điều khiển sự kiện.
01-Các sự kiện trong NODEJS
Mỗi hành động trên máy tính là 01 sự kiện. Ví dụ như là khi
01 kết nối được tạo hoặc khi mở 01 tập tin.
Các đối tượng trong NODEJS có thể phát sinh sự kiện, ví dụ
như đối tượng readStream tạo ra các sự kiện khi mở và đóng 01 tập tin.
Ví dụ:
var fs = require('fs');
var rs = fs.createReadStream('./demofile.txt');
rs.on('open', function () {
console.log('The file is open');
});
var rs = fs.createReadStream('./demofile.txt');
rs.on('open', function () {
console.log('The file is open');
});
02-Module Events
NODEJS có 01 module dựng sẵn, gọi là “Events” nơi mà bạn có
thể create-, fire-, và listen- các sự kiện của mình.
Để đính kèm module Events ta dùng phương thức require() .Hơn
nữa, tất cả thuộc tính và phương thức của sự kiện là 01 thực thể của đối tượng
EventEmitter.
Để có thể truy cập các phương thức và thuộc tính này, ta tạo
đối tượng EventEmitter:
var events = require('events');
var eventEmitter = new events.EventEmitter();
var eventEmitter = new events.EventEmitter();
03-Đối tượng EventEmitter
Bạn có thể gán xử lý sự kiện vào sự kiện của mình với đối tượng
EventEmitter.
Trong ví dụ dưới đây, chúng ta tạo 01 hàm sẽ được thực thi
khi 01 sự kiện “scream” bị hủy.
Để hủy 01 sự kiện, dùng phương thức emit()
Ví dụ:
var events = require('events');
var eventEmitter = new events.EventEmitter();
//Create an event handler:
var myEventHandler = function () {
console.log('I hear a scream!');
}
//Assign the event handler to an event:
eventEmitter.on('scream', myEventHandler);
//Fire the 'scream' event:
eventEmitter.emit('scream');
var eventEmitter = new events.EventEmitter();
//Create an event handler:
var myEventHandler = function () {
console.log('I hear a scream!');
}
//Assign the event handler to an event:
eventEmitter.on('scream', myEventHandler);
//Fire the 'scream' event:
eventEmitter.emit('scream');
Nếu vẫn chưa rõ các bạn xem thêm video clip sau:
Các bạn hãy bấm nút LIKE và SHARE để mình có động lực viết thêm nhiều nhiều bài viết nữa.
By #drM
Không có nhận xét nào:
Đăng nhận xét