2017-01-09 11 views
2

私はAngular 2の最終版を使用しており、別のHTTP要求に依存するHTTP要求を実行しようとしています。Angular2:観測可能なflatMapエラー未定義の 'subscribe'プロパティを読み取ることができません

私の場合は、別のHTTPリクエスト( のgetUser)から返されるパラメータとして、ユーザIDとgetAccount

AccountServiceのしようとしている

constructor(private http: Http, private userService: UserService) { 
    } 

getAccount(): Observable<Account> { 

    let tenant: string = 'test'; 

    Observable.fromPromise(this.userService.getUser()).flatMap(
     user => { 
      return this.http.get('/tenants/' + tenant + '/accounts/' + user.id + '/') 
       .map((res: Response) => { 
        return res.json(); 
       }); 
     }); 
} 

UserServiceの(外部システムに依存して、として動作します必須):

getUser(): Promise<User> { 
    return new Promise<User>((resolve, reject) => { 
     if (KeycloakService.auth.authz.token) { 
      return KeycloakService.auth.authz.loadUserInfo().success((data) => { 
       resolve(<User> data); 
      }).error(() => { 
       reject(null); 
      }); 
     } 
    }); 
} 

getAccountを呼び出すときAppComponent.ts:

this.accountService.getAccount().subscribe(data => { console.log('account:', data); }); 

私は次のエラーを取得しています:

EXCEPTION: Uncaught (in promise): Error: Error in :0:0 caused by: Cannot read property 'subscribe' of undefined TypeError: Cannot read property 'subscribe' of undefined

任意のアイデアこのエラーの原因でしょうか?

おかげ

答えて

3

return

return Observable.fromPromise(this.user 
+0

感謝が不足しています!私はこれに多くの時間を費やしたと信じることはできません –

+0

あなたは大歓迎です。これを聞いてうれしいことはあなたの問題を解決しました:-) –

関連する問題