Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function EventEmitter() {
- this._listenersObj = {};
- }
- EventEmitter.prototype.emit = function (event) {
- const listeners = this._listenersObj[event];
- if(listeners) {
- listeners.forEach((listener) => {
- console.log('emit event', event);
- listener();
- });
- }
- }
- EventEmitter.prototype.on = function(event, listener) {
- let x = this._listenersObj[event];
- this._listenersObj[event] = Array.isArray(this._listenersObj[event]) ? [...this._listenersObj[event], listener] : [listener];
- }
- EventEmitter.prototype.off = function(event, listener) {
- const x = this._listenersObj[event];
- if(x) {
- const listenerIndexToRemove = x.indexOf(listener);
- if(listenerIndexToRemove !== 1) {
- x.splice(listenerIndexToRemove, 1);
- }
- if(x.length === 0) {
- delete this._listenersObj[event];
- }
- }
- console.log('listener was removed', this._listenersObj);
- }
- function listener() {
- console.log('listener was called')
- }
- const emitter = new EventEmitter();
- emitter.on('dfg', listener);
- emitter.emit('dfg');
- emitter.off('dfg', listener);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement