Содержание:
**1.Введение о событиях в node.js
2.Пример использования событий в node.js
1.Введение о событиях в node.js**
1.1.Класс EventEmitter и встроенный модуль событий в node.js
Встроенный модуль Events в node.js содержит класс EventEmitter, который может быть расширен другими классами для использования многих его методов. Класс EventEmitter вызывает два метода для добавления и удаления событий.
1.2.Методы класса EventEmitter
В классе EventEmitter есть метод «on», который принимает в качестве первого аргумента имя события, а в качестве второго — функцию обратного вызова события.
Функция обратного вызова события:
синтаксис функции: когда «this» является аргументом, он ссылается на экземпляр EventEmitter
синтаксис стрелки: когда «this» является аргументом, он ссылается на пустой объект.
Класс EventEmitter имеет метод под названием «emit», который принимает в качестве первого аргумента имя события, которое нужно вызвать или спровоцировать, а в качестве аргументов функции обратного вызова — следующие параметры.
2.
Класс eventemitter: примеры
const {EventEmitter} = require("events");
class EventEmitterClass extends EventEmitter {
constructor() {
super();
}
}
module.exports = {EventEmitterClass};
Набор примеров использования класса eventemitter:
const {EventEmitterClass} = require("./eventEmitter");
const myEmitter = new EventEmitterClass();
myEmitter.on('event', (a, b) => {
console.log(a,b);
setImmediate(() => {
console.log('this happens asynchronously');
});
});
myEmitter.emit('event', 'a', 'b');
let m = 0;
myEmitter.once('event', () => {
console.log(++m);
});
myEmitter.emit('event');
// Prints: 1
myEmitter.emit('event');
myEmitter.emit('error', new Error('whoops!'));
EventEmitterClass.captureRejections = true;
const ee = new EventEmitterClass();
ee.on('something', async (value) => {
throw new Error('kaboom');
});
ee.on('error', (err) => {
console.error('whoops! there was an error');
});
ee.emit('something');