Skip to content

zhentian-wan/ee

Repository files navigation

Install

npm i evnemit --save

Use

const Emitter = require('evnemit');

Emittor.on('xxx', () => {});

Functions

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

off(event, [fn]) ⇒ number

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);
});

on(event, fn) ⇒ number

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);
    });

once(event, fn) ⇒ number

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(event, ...args) ⇒ boolean

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);

Releases

No releases published

Packages

No packages published