UNPKG

@woleet/woleet-widgetv2

Version:

Woleet web widgets V2

27 lines (22 loc) 532 B
/** * Event Observer pattern * It's used for communication between the widget components */ class EventObserver { constructor() { this.observers = []; } // Subscribe on events subscribe(fn) { this.observers.push(fn); } // Unsubscribe from events unsubscribe(fn) { this.observers = this.observers.filter(subscriber => subscriber !== fn); } // Broadcast an event broadcast(data, ...args) { this.observers.forEach(subscriber => subscriber(data, ...args)); } } export default EventObserver;