Руководство NodeJS EventEmitter
1. NodeJS EventEmitter
var fs = require('fs');
// Create a stream to read file
var rs = fs.createReadStream('C:/test/demo.txt');
// The event 'open':
rs.on('open', function() {
console.log('File opened!');
});
2. Пример EventEmitter
// Import events module
var events = require('events');
// Create an EventEmitter object
var eventEmitter = new events.EventEmitter();
// Add Event Listener
eventEmitter.addListener('bellRing', bellRingHandler1);
// Add Event Listener
eventEmitter.addListener('bellRing', bellRingHandler2);
// Fire bellRing event!!
eventEmitter.emit('bellRing', 'Jerry');
// Import events module
var events = require('events');
// Create an eventEmitter object
var eventEmitter = new events.EventEmitter();
// A Listener
var bellRingHandler1 = function bellRingHandler1(who) {
console.log("\n");
console.log('The Bell Ringing..... (Handler 1)');
console.log(" " + who + " was standing behind the door!");
if(who == 'Jerry') {
console.log(' Tom, help me!!');
return;
}
console.log(" Welcome " + who);
}
// A Listener
var bellRingHandler2 = function bellRingHandler2(who) {
console.log("\n");
console.log('The Bell Ringing..... (Handler 2)');
eventEmitter.emit("nobodyIsAtHome");
}
// A Listener
var nobodyIsAtHomeHandler = function nobodyIsAtHomeHandler() {
console.log("\n");
console.log(" Sorry, Nobody is at home now, Please leave your message!")
}
// Add Event Listeners
eventEmitter.addListener('bellRing', bellRingHandler1);
eventEmitter.addListener('bellRing', bellRingHandler2);
eventEmitter.addListener('nobodyIsAtHome', nobodyIsAtHomeHandler);
// ----- Testing ------
// Fire bellRing event!!
eventEmitter.emit('bellRing', 'Jerry');
node eventemitter-examples/first-example.js
3. EventEmitter Class
No | Метод | Описание |
1 | addListener(event, listener) | Добавить listener в конце массива listeners для определенных событий. Этот метод не проверяет был ли listener добавлен когда-либо, или нет. |
2 | on(event, listener) | Этот метод 100% похож на метод addListener. |
3 | once(event, listener) | Добавить listener в массив listeners определенного массива. Но этот listener вызывается только 1 раз при происхождении события. Потом он удаляется из массива. |
4 | removeListener(event, listener) | Удаляет listener из массива listeners определенного события. Если listener добавлен в данный массив много раз, чтобы удалить все эти listener вам нужно вызвать этот метод много раз. |
5 | removeAllListeners([event]) | Удалить все listener, или удалить все listener определенного события. |
6 | setMaxListeners(n) | По умолчанию, EventEmitter распечатает предупреждение если будут добавлены более 10 listener в определенное событие. Это полезная настройка по умолчанию, которая помогает найти утечки памяти(memory leaks). Вы можете настроить другое число, или настроить как 0 для безлимита (unlimited). |
7 | listeners(event) | Возвращает массив listener определенному событию. |
8 | emit(event, [arg1], [arg2], [...]) | Поочередно выполняет listener в массиве, с параметрами. Возвращает true если массив иммет минимум один listener, и наоборот возвращает false. |
Pуководства NodeJS
- Введение в NodeJs
- Что такое NPM?
- Руководство NodeJS для начинающих
- Установить редактор Atom
- Установите NodeJS в Windows
- Руководство NodeJS Module
- Концепция Callback в NodeJS
- Создание простого HTTP Server с NodeJS
- Понимание Event Loop в NodeJS
- Руководство NodeJS EventEmitter
- Подключиться к базе данных MySQL в NodeJS