-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathevents.js
49 lines (32 loc) · 1.72 KB
/
events.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
const eventEmmiter = require('events');
const myEmmiter = new eventEmmiter();
const logDbConnection = () => {
console.log('DB connected');
}
myEmmiter.addListener('connected', logDbConnection); //Добавление эвента, аналог on
myEmmiter.emit('connected'); //вызов эвента
myEmmiter.removeListener('connected', logDbConnection);
// myEmmiter.removeAllListeners('connected'); или удаление всех эвентов
myEmmiter.on('msg', (data) => {
console.log(data);
})
myEmmiter.prependListener('msg', (data) => { // эыент prepend будет вызвано РАНЬШЕ чем эвент с ON
console.log('prepend');
})
myEmmiter.emit('msg', 'data, 123456')
myEmmiter.once('off', () => { // вызов эвента происходит единажды!
console.log('единоразовый вызов')
})
myEmmiter.emit('off');
myEmmiter.emit('off'); // не будет вызова, ибо off уже удален
console.log(myEmmiter.getMaxListeners()); // максимальное кол-во listner 10
myEmmiter.setMaxListeners(1); // установка максимального кол-во listener
console.log(myEmmiter.getMaxListeners()); // 1
console.log(myEmmiter.listenerCount('msg')); // считает кол-во listener на эвенте
console.log(myEmmiter.listenerCount('off'));
console.log(myEmmiter.listeners('msg')); //возвращает массив listener этого эвента
console.log(myEmmiter.eventNames('msg')) // название эвентов
myEmmiter.on('error', (err) => { // Пример обработки ошибки
console.log(`Произошла ошибка ${err.message}`)
})
myEmmiter.emit('error', new Error ('BOOM!!'));