@aux4/dispatcher.js

1.0.7 • Public • Published

dispatcher.js

This package is responsible for managing events.

Install

npm install @aux4/dispatcher.js

Register

Start listening events.

Register for single event

const {Dispatcher} = require('@aux4/dispatcher.js');

const MY_EVENT = 'my-event-name';

function subscriber(eventType, object) {
  console.log(eventType, object);
}

Dispatcher.register(subscriber, MY_EVENT);

Register for multiple events

The subscriber will be triggered in case of any of these events will be dispatch.

const Events = {
  EVENT_ONE: 'eventOne',
  EVENT_TWO: 'eventTwo'
};

Dispatcher.register(subscriber, [Events.EVENT_ONE, Events.EVENT_TWO]);

Register for all events

The subscriber will be triggered in case of any events will be dispatch.

Dispatcher.register(subscriber);

Register for combined events

The subscriber will be triggered only after all events will be dispatch.

const {Dispatch, Collector} = require('@aux4/dispatcher.js');

const collector = new Collector(subscriber, [Events.EVENT_ONE, Events.EVENT_TWO]);

Dispatch.reigster(collector, collector.events());

A timeout can be specified in case one of the events is missing.

const {Dispatch, Collector} = require('@aux4/dispatcher.js');

const collector = new Collector(subscriber, [Events.EVENT_ONE, Events.EVENT_TWO]).timeout(1000); // 1s timeout

Dispatch.reigster(collector, collector.events());

Dispatch

Dispatch event with (or without) a payload and it will trigger all registered subscribers for that particular event.

// dispatch with payload
const payload = {...}; // it can be any object or value
Dispatcher.dispatch(Events.EVENT_ONE, payload);

// dispatch without payload
Dispatcher.dispatch(Events.EVENT_ONE);

Unsubscribe

Stop listening events.

// unregister for single event
Dispatcher.unregister(subscriber, MY_EVENT);

// unregister for multiple events
Dispatcher.unregister(subscriber, [Events.EVENT_ONE, Events.EVENT_TWO]);

// unregister for all events
Dispatcher.unregister(subscriber);

Readme

Keywords

Package Sidebar

Install

npm i @aux4/dispatcher.js

Weekly Downloads

96

Version

1.0.7

License

Apache-2.0

Unpacked Size

5.88 kB

Total Files

5

Last publish

Collaborators

  • aux4-dev