【发布时间】:2019-04-25 15:03:20
【问题描述】:
我有一个单例服务,它只是从端点获取用户。 然后在需要的地方将用户注入到每个组件中。 问题是在依赖于用户值的组件中还有其他函数要执行(即在执行所述函数之前等待用户值)。
如何在继续之前“等待”服务的值?这种等待显然只在应用程序的初始加载时是必需的,而单例已经为后续组件提供了它的实例。
服务组件:
userDetails:IEmployee = {};
constructor(private service: ServiceCaller) {
this.User().subscribe((x) => {
this.userDetails = x;
});
}
public User():Observable<IEmployee> {
if(this.userDetails == undefined){
return this.service.get('/some/url')
.map((resp: IResponse) => {
return resp.Response
});
}
else {
//How to return an observable of this.userDetails?
let obs = Observable.create((observer:any) => {
observer.next(this.userDetails);
});
return obs;
}
}
}
其他组件:
this.userService.User().subscribe((x) => {
//result empty
});
我不完全确定我是否正确地处理了这个问题,但我们将不胜感激。
【问题讨论】:
标签: angular typescript observable