Skip to content

Instantly share code, notes, and snippets.

@devrkd
Created June 12, 2021 09:21
Show Gist options
  • Save devrkd/1f7f9af1523f89ebe70a2fff5fc92ce6 to your computer and use it in GitHub Desktop.
Save devrkd/1f7f9af1523f89ebe70a2fff5fc92ce6 to your computer and use it in GitHub Desktop.
Subject in Typescript
class Subject implements Observable {
private observers: Observer[] = [];
subscribe(observer: Observer) {
this.observers.push(observer);
}
unsubscribe(observer: Observer) {
this.observers = this.observers.filter((o) => {
return o !== observer
})
console.log('observer detached...' + observer.constructor.name);
}
notify() {
this.observers.forEach((o) => {
o.update(this);
})
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment