UNPKG

react-native-template-zygor

Version:

Template para projetos em React Native, com Estrutura de Pastas customizada, Estilos Globais, ESLint + Prettier + Babel Plugin Root Import, React Navigation, Reactotron e Axios configurados.

41 lines (32 loc) 821 B
/* eslint-disable no-underscore-dangle */ class EventEmitter { constructor() { this.events = {}; } _getEventListByName(eventName) { if (typeof this.events[eventName] === 'undefined') { this.events[eventName] = new Set(); } return this.events[eventName]; } on(eventName, fn) { this._getEventListByName(eventName).add(fn); } once(eventName, fn) { const self = this; const onceFn = function (...args) { self.removeListener(eventName, onceFn); fn.apply(self, args); }; this.on(eventName, onceFn); } emit(eventName, ...args) { this._getEventListByName(eventName).forEach((fn) => { fn.apply(this, args); }); } removeListener(eventName, fn) { this._getEventListByName(eventName).delete(fn); } } export default EventEmitter;