quackamole-event-emitter
v0.2.0
Published
Simple EventEmitter for non-dom events
Downloads
21
Readme
Quackamole EventEmitter
Install
npm install quackamole-event-emitter
or
yarn add quackamole-event-emitter
Basic Usage
import EventEmitter from 'quackamole-event-emitter';
const emitter = new EventEmitter();
// basic
emitter.on('some-event', (evt: IEvent) => console.log(evt.data.foo), {once: true});
emitter.off('some-event', (evt: IEvent) => console.log(evt.data.foo), {once: true});
emitter.emit('some-event', {foo: 'bar'})
Experimental Usage
Subject to change over time depending on usefulness and usability.
Wait for follow-up event
As a response to "ping" we expect the follow up event "pong" to be emitted.
import EventEmitter from 'quackamole-event-emitter';
const emitter = new EventEmitter();
emitter.on('ping', (evt: IEvent) => {
setTimeout(() => emitter.emit('pong', evt.data + ' world'), 1000);
});
emitter.emit('ping', 'hello');
const pingPong: string = await emitter.onAsync<string>('pong', (evt: IEvent) => {
evt.asyncHandle?.resolve(evt.data);
}); // pingPong === 'hello world';
License
MIT