Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import Emitter from './Emitter';
- const emitter = new Emitter();
- emitter.on('connect', data => {
- console.log('We have been connected to', data);
- });
- emitter.on('disconnect', data => {
- console.log('We disconnected from', data);
- });
- emitter.emit('connect', 'http-server');
- // prints to console:
- // > We have been connected to http-server
- emitter.emit('connect', 'websocket');
- // prints to console:
- // > We have been connected to websocket
- emitter.emit('disconnect', 'websocket');
- // prints to console:
- // > We disconnected from websocket
- emitter.emit('disconnect', 'http-server');
- // prints to console:
- // > We disconnected from http-server
- class Emitter {
- constructor() {
- this.events = {};
- }
- on(eventName, fn) {
- if (!this.events[eventName]) {
- this.events[eventName] = [];
- }
- this.events[eventName].push(fn);
- }
- emit(eventName, data) {
- const event = this.events[eventName];
- if (event) {
- event.forEach(fn => {
- fn.call(null, data);
- });
- }
- return () => {
- this.events[eventName] =
- this.events[eventName].filter(eventFn => fn !== eventFn);
- }
- }
- }
- let emitter = new Emitter();
- emitter.on('connect', data => {
- console.log('We have been connected to', data);
- });
- emitter.on('disconnect', data => {
- console.log('We disconnected from', data);
- });
- emitter.emit('connect', 'http-server');
- // prints to console:
- // > We have been connected to http-server
- emitter.emit('connect', 'websocket');
- // prints to console:
- // > We have been connected to websocket
- emitter.emit('disconnect', 'websocket');
- // prints to console:
- // > We disconnected from websocket
- emitter.emit('disconnect', 'http-server');
- // prints to console:
- // > We disconnected from http-server
Add Comment
Please, Sign In to add comment