import EventEmitter from "easy-event-emitter";
const events = new EventEmitter();
const events = new EventEmitter(true);
addListener(event name, callback); //return {remove()}
emit(event name, data); //return void
removeAllListeners(); //return void
const events1 = new EventEmitter();
const events2 = new EventEmitter();
events1.addListener('test', (val) => {
console.log(val); //hello
});
const listener = events2.addListener('test', (val) => {
console.log(val); //world
});
events2.addListener('test2', (val) => {
console.log(val); //hi :-)
});
events1.emit('test', 'hello');
events2.emit('test', 'world');
events2.emit('test2', 'hi :-)');
listener.remove(); //Remove current listener
events2.removeAllListeners(); //Remove all listeners in current instance
const events1 = new EventEmitter('test_group');
const events2 = new EventEmitter('test_group');
events1.addListener('test', (val) => {
console.log(val); //"hello" replace "world"
});
events2.addListener('test', (val) => {
console.log(val); //"hello" replace "world"
});
events1.emit('test', 'hello');
events2.emit('test', 'world');
const events = new EventEmitter(true);
events.addListener('test', (val) => {
console.log(val); //"hello" replace "world"
});
const listener = EventEmitter.addListener('test', (val) => {
console.log(val); //"hello" replace "world"
});
events.emit('test', 'hello');
EventEmitter.emit('test', 'world');
listener.remove(); //Remove current global listener
events.removeAllListeners(); //Remove all global listeners
//Or
EventEmitter.removeAllListeners();
type TUser = {
id: number;
name: string;
email: string;
};
type TEvents = {
login: TUser;
register: Omit<TUser, 'id'>
};
const events = new EventEmitter<TEvents>();
events.addListener('login', (user) => {
// user: {
// id: 1,
// name: 'user',
// email: 'user@gmail.com'
// }
});
//...
events.addListener('register', (user) => {
// user: {
// name: 'new user',
// email: 'new_user@gmail.com'
// }
});
events.emit('login', {
id: 1,
name: 'user',
email: 'user@gmail.com'
});
events.emit('register', {
name: 'new user',
email: 'new_user@gmail.com'
});