Angular2:Observable flatMap error无法读取未定义的属性'subscribe'
问题描述:
我正在使用Angular 2最终版本并尝试执行依赖于另一个HTTP请求的HTTP请求。Angular2:Observable flatMap error无法读取未定义的属性'subscribe'
我的情况下试图getAccount与用户id作为参数,它从另一个HTTP请求返回(的getUser)
帐户服务:
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
任何想法是什么原因导致这个错误?
感谢
答
一个return
缺少
return Observable.fromPromise(this.user
感谢!我不敢相信这么多时间在这 –
不客气。很高兴听到这个问题解决了你的问题:-) –