1.8 Events

by dimitrs_papadimitriou

HTML

<script src="https://rawgit.com/eu81273/jsfiddle-console/master/console.js"></script>

JavaScript

class Repository {
            constructor() {
                this.observers = []
            }
            subscribe(observer) {
                this.observers.push(observer)
            }
            notify(value) {
                this.observers.forEach(observer => {
                    observer.next(value)
                })
            }
            getClient() {
                setTimeout(() => {
                    this.notify({ id: 1, name: "rick" })
                }, 1000)
            }

        }

        var repo = new Repository();
        repo.subscribe(({
            next: (client) => {
                console.log(client.name)
            }
        }))

        repo.getClient();