@polkadot/api
Version:
Promise and RxJS wrappers around the Polkadot JS RPC
79 lines (78 loc) • 2.51 kB
JavaScript
import { EventEmitter } from 'eventemitter3';
export class Events {
__internal__eventemitter = new EventEmitter();
emit(type, ...args) {
return this.__internal__eventemitter.emit(type, ...args);
}
/**
* @description Attach an eventemitter handler to listen to a specific event
*
* @param type The type of event to listen to. Available events are `connected`, `disconnected`, `ready` and `error`
* @param handler The callback to be called when the event fires. Depending on the event type, it could fire with additional arguments.
*
* @example
* <BR>
*
* ```javascript
* api.on('connected', (): void => {
* console.log('API has been connected to the endpoint');
* });
*
* api.on('disconnected', (): void => {
* console.log('API has been disconnected from the endpoint');
* });
* ```
*/
on(type, handler) {
this.__internal__eventemitter.on(type, handler);
return this;
}
/**
* @description Remove the given eventemitter handler
*
* @param type The type of event the callback was attached to. Available events are `connected`, `disconnected`, `ready` and `error`
* @param handler The callback to unregister.
*
* @example
* <BR>
*
* ```javascript
* const handler = (): void => {
* console.log('Connected !);
* };
*
* // Start listening
* api.on('connected', handler);
*
* // Stop listening
* api.off('connected', handler);
* ```
*/
off(type, handler) {
this.__internal__eventemitter.removeListener(type, handler);
return this;
}
/**
* @description Attach an one-time eventemitter handler to listen to a specific event
*
* @param type The type of event to listen to. Available events are `connected`, `disconnected`, `ready` and `error`
* @param handler The callback to be called when the event fires. Depending on the event type, it could fire with additional arguments.
*
* @example
* <BR>
*
* ```javascript
* api.once('connected', (): void => {
* console.log('API has been connected to the endpoint');
* });
*
* api.once('disconnected', (): void => {
* console.log('API has been disconnected from the endpoint');
* });
* ```
*/
once(type, handler) {
this.__internal__eventemitter.once(type, handler);
return this;
}
}