【发布时间】:2018-04-26 05:31:44
【问题描述】:
我有 Angular 4 应用程序。 我在服务的构造函数中调用 getCity() 方法来初始化 cityId 属性。我在另一种方法中使用 cityId?例如,getData()。当我尝试在组件中调用 getData() 时,我收到 cityId 未定义的错误。我认为这是因为 getData() 开始执行时 getCity() 没有完成它的执行。 这两种方法都使用 Observables,并返回 Observable。 我用 getCity().concatMap((id) => getData(...)) 解决了它。
你能告诉我这是正确的方法吗?或许还有更正确的方法?
@Injectable()
export class CustomService {
cityId: number;
constructor(private http: HttpClient,
private citiesService: CitiesService) {
this.getCityId()
}
getCityId() {
return this.citiesService.getCity().subscribe(
(city) => {
this.cityId = city['id']
});
}
getData() {
/* use this.cityId here */
}
【问题讨论】:
-
请贴出代码