2017-01-09 3 views
2

저는 Angular 2 최종 버전을 사용 중이며 다른 HTTP 요청에 따라 HTTP 요청을 수행하려고합니다.Angular2 : Observable flatMap error 정의되지 않은 'subscribe'속성을 읽을 수 없습니다.

는 는

내 경우 (인 getUser) 다른 HTTP 요청에서 반환 매개 변수로 사용자 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

당신을 진심으로 환영한다. 다행히 문제가 해결되었습니다 .-) –

관련 문제