diff options
Diffstat (limited to 'turing-machine/js/observable.js')
-rw-r--r-- | turing-machine/js/observable.js | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/turing-machine/js/observable.js b/turing-machine/js/observable.js new file mode 100644 index 0000000..1299fc6 --- /dev/null +++ b/turing-machine/js/observable.js @@ -0,0 +1,14 @@ +class Observable { + constructor() { + this.observers = []; + } + subscribe(f) { + this.observers.push(f); + } + unsubscribe(f) { + this.observers = this.observers.filter((subscriber) => subscriber !== f); + } + notify(data) { + this.observers.forEach((observer) => observer(data)); + } +} |