J'utilise la version finale d'Angular 2 et j'essaie d'effectuer une requête HTTP qui dépend d'une autre requête HTTP.Angular2: erreur flatMap observable Impossible de lire la propriété 'subscribe' de undefined
Mon cas tente de getAccount avec l'ID utilisateur en tant que paramètre qui est revenu d'une autre requête http (getUser)
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 (dépend système externe, fonctionne comme requis):
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);
});
}
});
}
Lors de l'appel de getAccount à partir de AppComponent.ts:
this.accountService.getAccount().subscribe(data => { console.log('account:', data); });
Je reçois l'erreur suivante:
EXCEPTION: Uncaught (in promise): Error: Error in :0:0 caused by: Cannot read property 'subscribe' of undefined TypeError: Cannot read property 'subscribe' of undefined
des idées ce qui cause cette erreur?
grâce
merci !!! Je ne peux pas croire passé autant de temps sur ce –
De rien. Heureux d'entendre cela résolu votre problème :-) –