sqmicro-commons
Version:
Commons for SQ analytics microservices.
34 lines (29 loc) • 982 B
JavaScript
/**
* @module bind-events
*/
/**
* Назначить обработчики событий целевому объекту.
* @name bindEvents
* @function
* @param {IEventTarget} target целевой объект.
* @param {Object} events The map of event name to an event handler.
* @param {*} context The value to bind `this` of the handler to.
* @param {Array} [args] argument to partially apply handlers of `events`.
*/
module.exports = function bindEvents(target, events, context, args = []) {
for (const [eventName, handler] of Object.entries(events)) {
target.on(eventName, handler.bind(context, ...args));
}
};
/**
* @classdesc Интерфейс целевого объекта.
* @name IEventTarget
* @class
* @inner
*/
/** Назначить обработчик событию.
* @method
* @name IEventTarget#on
* @param {string} eventName The name of event.
* @param {function} eventHandler The name of the event handler.
*/