TypeError: Cannot read property 'then' of undefined on Angular 2 Promises
<p>I have the following code, on a component that uses the root segment route. </p>

<pre><code>ngOnInit() {
    ...

    this.route.queryParams.forEach((params: Params) =&gt; {
        if (params['scrollTo']) {
            this.checkIfDataLoaded().then(() =&gt; { 
                this.scrollToSection(params['scrollTo']);
            })
        }
    });
}

checkIfDataLoaded() {
    if (this.firstLoaded &amp;&amp; this.secondLoaded &amp;&amp; this.thirdnLoaded) {
        return new Promise((resolve, reject) =&gt; {
            resolve(true);
        });
    }
}
</code></pre>

<p>It works fine until i switch trough routes and get back to my root segment, I noticed with the debugger that I get this error</p>

<pre><code>TypeError: Cannot read property 'then' of undefined
    at eval (http://localhost:54396/app/my.component.js:58:42)
    at SafeSubscriber.eval [as _next] (http://localhost:54396/node_modules/rxjs/Observable.js:108:21)
    at SafeSubscriber.__tryOrSetError (http://localhost:54396/node_modules/rxjs/Subscriber.js:232:16)
    at SafeSubscriber.next (http://localhost:54396/node_modules/rxjs/Subscriber.js:174:27)
    at Subscriber._next (http://localhost:54396/node_modules/rxjs/Subscriber.js:125:26)
    at Subscriber.next (http://localhost:54396/node_modules/rxjs/Subscriber.js:89:18)
    at BehaviorSubject._subscribe (http://localhost:54396/node_modules/rxjs/BehaviorSubject.js:28:24)
    at BehaviorSubject.Observable.subscribe (http://localhost:54396/node_modules/rxjs/Observable.js:56:27)
    at eval (http://localhost:54396/node_modules/rxjs/Observable.js:87:38)
    at new ZoneAwarePromise (http://localhost:54396/node_modules/zone.js/dist/zone.js:467:29)
</code></pre>

<p>Any idea what is happening and how to solve this?</p>