Я использую окончательную версию Angular 2 и пытаюсь выполнить HTTP-запрос, который зависит от другого HTTP-запроса.Angular2: Observable flatMap error Невозможно прочитать свойство «подписаться» не определено
Мой случай пытается getAccount с идентификатором пользователя в качестве параметра, который возвращается из другого запроса 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 (зависит от внешней системы, работает требуется):
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
любые идеи, что вызывает эту ошибку?
благодаря
спасибо !!! Я не могу поверить, что потратил столько времени на это –
Добро пожаловать. Рад слышать, что это исправило вашу проблему :-) –