npm i evnemit --save
const Emitter = require('evnemit');
Emittor.on('xxx', () => {});
- off(event, [fn]) ⇒
number
Unsubscribe an event name and all its subscribed functions or unsubscribe an event name and the function provided only
- on(event, fn) ⇒
number
Subscribe a function to be called every time the event name is triggered
- once(event, fn) ⇒
number
Subscribe a function to be called only once for when the event name is triggered
- trigger(event, ...args) ⇒
boolean
Trigger an event name with optional arguments
Unsubscribe an event name and all its subscribed functions or unsubscribe an event name and the function provided only
Kind: global function
Returns: number
- The current number of subscribers for the event name
Throws:
Error
If the event name is not a string data type or the function is not a function data type (if provided)
Access: public
Param | Type | Description |
---|---|---|
event | string |
Event name |
[fn] | function |
Optional function to unsubcribe from the associated event name; otherwise, if not defined, then all functions are unsubscribed. If undefined is passed, then this is considered to be a "defined" argument |
Example
Emitter.on('event-str', () => {
console.log('triggered event');
});
Emitter.trigger('event-str');
Emitter.off('event-str');
Emitter.trigger('event-str');
Example
let clickCount = 0;
function onClickMax10(event) {
console.log(event);
clickCount += 1;
if (clickCount === 10) {
Emitter.off('sign-in', onClickMax10);
}
}
Emitter.on('sign-in', onClickMax10);
// trigger the "sign-in" event for when the sign-in button is clicked
document.querySelector('#sign-in').addEventListener('click', (event) => {
Emitter.trigger('sign-in', event);
});
Subscribe a function to be called every time the event name is triggered
Kind: global function
Returns: number
- The current number of subscribers for the event name
Throws:
Error
If the event name is not a string data type or the function is not a function data type
Access: public
Param | Type | Description |
---|---|---|
event | string |
Event name |
fn | function |
Function to call when the event name is triggered |
Example
// in app.js
Emitter.on('posts-request', (data) => {
// prints the response data object
console.log(data);
});
// in api.js
fetch('/posts')
.then((data) => {
// trigger the event name with the response data object
Emitter.trigger('posts-request', data);
});
Subscribe a function to be called only once for when the event name is triggered
Kind: global function
Returns: number
- The current number of subscribers for the event name
Throws:
Error
If the event name is not a string data type or the function is not a function data type
Access: public
Param | Type | Description |
---|---|---|
event | string |
Event name |
fn | function |
Function to call when the event name is triggered |
Example
// the console will only print the event object once
Emitter.once('sign-in', (event) => {
console.log(event);
});
// trigger the "sign-in" event for when the sign-in button is clicked
document.querySelector('#sign-in').addEventListener('click', (event) => {
Emitter.trigger('sign-in', event);
});
Trigger an event name with optional arguments
Kind: global function
Returns: boolean
- True, the event name has subscribers; otherwise, false
Throws:
Error
If the event name is not a string data type
Access: public
Param | Type | Description |
---|---|---|
event | string |
Event name |
...args | * |
Zero or more arguments to pass to the subscribed functions |
Example
Emitter.on('event-str', (arg1, arg2) => {
console.log(arg1, arg2);
});
Emitter.trigger('event-str', 1, 2);