События в node.js

Содержание:
**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');
Вход в полноэкранный режим Выход из полноэкранного режима

Оцените статью
devanswers.ru
Добавить комментарий