Townland custom event emitter named eventer and you can run this package in browsers.
Emit an event with no event listener. After making the listener, the last emit will be called.
If you have worked with NPM/NodeJS so far, you know how to install this package. Of course, you can also run this package in browsers.
I know npm and yarn to manage nodejs packages.
npm i @townland/eventer
yarn add @townland/eventer
Do you know jsDeliver ?
<script src="https://cdn.jsdelivr.net/npm/@townland/eventer@latest/dist/index.min.js"></script>Check event name exist or not.
eventer.has('<EVENT-NAME>') Check event name stacked and wait for listener.
eventer.isStacked('<EVENT-NAME>')Listen to an event.
function callback() {
/// your event callback
}
eventer.on('<EVENT-NAME>', callback)Listen to an event one time.
function callback() {
/// your event callback
}
eventer.once('<EVENT-NAME>', callback)Yes! You can remove created listenner.
let event = eventer.on('<EVENT-NAME>', callback);
event.remove()import { Eventer } from '@townland/eventer';
let eventer = new Eventer();
eventer.once('pong', (params: any[]) => {
/*
* This callback will call one time
*/
console.log('ping')
})
eventer.on('ping', (params: any[]) => {
/*
* This is event callback
*/
console.log('pong')
eventer.emit('pong')
});
eventer.emit('ping') // <= call event callbackYou can read changes right here.