Lightweight Event Emitter class written in typescript that works on both client and server with no dependencies
The event emitter can be used with both vanilla js and typescript
Typescript Example
import {JSEmitter} from "jsemitter";
class Clock extends JSEmitter {
constructor() {
super();
(<any>window).setInterval(this.tickTock, 1000);
}
private tickTock(): void {
this.emit('onTick', new Date())
}
}
let clock = new Clock();
// subscribe to the onTick Event
clock.on('onTick', (theDate) => {
console.log(`The time is ${theDate}`);
this.count++;
if (this.count > 10) {
// unsubscribe after 10 seconds
clock.off('onTick');
console.log('Clock stopped after 10 seconds');
}
});
Fires a callback when an event is emitted that matches the key
Function Signature
on(key, callback)
Example
on('something-happened', (data)=>{
// event fired
// do something with the data
})
Fires a callback one time when an event is emitted that matches the key. After the event is is fired the callback is removed and will not fire again
Function Signature
once(key, callback)
Example
once('something-happened', (data)=>{
// event fired
// do something with the data, it won't be fired again
})
Fires a callback a specific number of times time when an event is emitted that matches the key. After the event is is fired the callback is removed and will not fire again
Function Signature
once(key, callback, count)
Example
once('something-happened', (data)=>{
// This event will fire 7 times and then be removed
}, 7)
Sends an event to any callback listening to the key
Function Signature
emit(key, data)
Example
emit('something-happened', 'Hello');
emit('something-else', {someObject:true});
Removes a specific callback associated with the key
Function Signature
off(key, callback)
Example
off('something-happened', (data)=>{})
Removes all callbacks attached to the event emitter
Function Signature
offAll()
Example
offAll()
Removes a callback associated with the key
Function Signature
offKey(key)
Example
off('something-happened')