active-switching
Version:
NPAW's SDK for CDN Balancing and P2P
34 lines (33 loc) • 1.24 kB
TypeScript
/**
* @class
* @description Gives event emitting/listening functionalities to its extenders.
* @exports Emitter
* @abstract
*/
export default abstract class Emitter {
private _listeners;
/**
* Sets a listener to a given event. Use {@link emit} to trigger those events.
* @param {string} eventName Name of the event.
* @param {callback} callback Callback of the event. Receives event and data.
* @return {this} Polymorphic with the type of the child class.
* @public
*/
on(eventName: string, callback: callback): this;
/**
* Removes given callback from the listeners of this object.
* @param {string} eventName Name of the event.
* @param {callback} callback Callback of the event.
* @return {this} Polymorphic with the type of the child class.
* @public
*/
off(eventName: string, callback: callback): this;
/**
* Emits given event, triggering all the associated callbacks.
* @param {string} eventName Name of the event.
* @param {object} data Custom data to be sent to the callbacks.
* @return {this} Polymorphic with the type of the child class
* @protected
*/
protected emit(eventName: string, data?: unknown): this;
}