const EventEmitter = require('events');
class CustomEvent extends EventEmitter {}
const ce = new CustomEvent();
ce.on('test', () => {
console.log('this is a test');
});
ce.emit('test');
//触发事件时可以传入参数
const ce2 = new CustomEvent();
ce2.on('error', (err, time) => {
console.log(err);
console.log(time);
});
ce2.emit('error', new Error('oops'), Date.now());
//只触发一次
const ce3 = new CustomEvent();
ce3.once('testOnce', () => {
console.log('test once');
});
setInterval(() => {
ce3.emit('testOnce');
}, 500);
//移除事件处理函数
function fn1() {
console.log('fn1');
}
function fn2() {
console.log('fn2');
}
const ce4 = new CustomEvent();
ce4.on('testRemove', fn1);
ce4.on('testRemove', fn2);
setInterval(() => {
ce4.emit('testRemove');
}, 500);
setTimeout(() => {
//移除 单个事件处理函数
ce4.removeListener('testRemove', fn2);
//移除 所有事件处理函数
// ce.removeAllListeners('testRemove');
}, 1500);