class Observer {
constructor() {
}
update() {
console.log('observer fired');
}
}
class Observable {
constructor() {
this.observers = [];
}
addObserver(observer) {
this.observers.push(observer);
}
remove(observer) {
this.observers.splice(this.observers.indexOf(observer),1);
}
notify() {
this.observers.forEach(x => x.update());
}
}
const observer = new Observer();
const observable = new Observable();
observable.addObserver(observer);
observable.notify();