2016-10-19 26 views
0

ルートセグメントルートを使用するコンポーネントに以下のコードがあります。TypeError:角度2の約定で未定義の 'then'プロパティを読み取ることができません

ngOnInit() { 
    ... 

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

checkIfDataLoaded() { 
    if (this.firstLoaded && this.secondLoaded && this.thirdnLoaded) { 
     return new Promise((resolve, reject) => { 
      resolve(true); 
     }); 
    } 
} 

私は谷ルートを切り替えて、私のルートセグメントに戻るまでそれが正常に動作し、私はこのエラー

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) 

に起こって、どのようにこの問題を解決することです何の任意のアイデアを得るデバッガと気づきました?

答えて

2

checkIfDataLoadedは約束を返さない場合は、このエラーが発生します。

checkIfDataLoaded() { 
    if (this.firstLoaded && this.secondLoaded && this.thirdnLoaded) { 
     return new Promise((resolve, reject) => { 
      resolve(true); 
     }); 
    } 
    /// <<<=== here nothing is returned 
} 
+0

だけでなく、私の約束ロジックはそこに行く、明確にするためのおかげで –

関連する問題