aboutsummaryrefslogtreecommitdiffstats
path: root/web/src/js/stores/base.es6.js
blob: 9e9c69aaa13f8e1810495ef7cc46bdcfc7786479 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
class EventEmitter {
	constructor() {
		this.listeners = {};
	}
	emit(event) {
		if (!(event in this.listeners)) {
			return;
		}
		this.listeners[event].forEach(function(listener) {
			listener(event, this);
		}.bind(this));
	}
	addListener(event, f) {
		this.listeners[event] = this.listeners[event] || [];
		this.listeners[event].push(f);
	}
	removeListener(event, f) {
		if (!(event in this.listeners)) {
			return false;
		}
		var index = this.listeners[event].indexOf(f);
		if (index >= 0) {
			this.listeners[event].splice(index, 1);
		}
	}
}