一、events模块的常用方法
const EventsEmitter = require('events');
const emitter = new EventsEmitter();
function HLog(msg){
console.log(msg);
}
emitter.on('hlog', HLog);
setTimeout(() => {
emitter.emit('hlog', 'hello emitter!')
emitter.off('hlog', HLog);
setTimeout(() => {
emitter.emit('hlog', 'hello emitter again!')
}, 1000);
}, 2000)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
二、events模块的其他方法
const EventsEmitter = require('events');
const ee = new EventsEmitter();
ee.on('func1', ()=>{ })
ee.on('func1', ()=>{ })
ee.on('func1', ()=>{ })
ee.on('func2', ()=>{ })
ee.on('func2', ()=>{ })
console.log(ee.eventNames());
console.log(ee.getMaxListeners());
console.log(ee.listenerCount('func1'));
console.log(ee.listeners('func1'));
ee.once('func3', ()=> {
console.log('func3!');
})
ee.emit('func3');
ee.emit('func3');
ee.emit('func3');
ee.on('func2', ()=>{
console.log('func2 second');
})
ee.prependListener('func2', () => {
console.log('func2 first!');
})
ee.emit('func2');
ee.on('func1', ()=>{
console.log('func1 second');
})
ee.prependOnceListener('func1', () => {
console.log('func1 first!');
})
ee.emit('func1');
ee.emit('func1');
ee.on('func3', ()=> {
console.log('func3!');
})
ee.emit('func3');
ee.removeAllListeners();
ee.emit('func3');
- 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
- 50
- 51
- 52
- 53
- 54
- 55
- 56