这就是问题:我有一个服务在构造函数中发出HTTP请求:
constructor(public http: Http, public geolocation: Geolocation) {
this.http = http;
this.geolocation = geolocation;
//Http request... this will set variable forecast of the class when complete.
this.getForecast(16);
}

然后我在这样的组件中注入该服务:
constructor(public connector: ApiConnector) {
this.forecast = connector.forecast;
}

如果我尝试在组件装饰器上使用组件类的预测成员,就像我在这里一样:
@Component({
selector: 'app',
directives: [MainForecast, DailyForecast],
template: `
<main-forecast [main-weather]="forecast"></main-forecast>
<daily-forecast [weather-list]="forecast.list"></daily-forecast>
`,
})
&#13;
我收到错误,&#34;无法读取属性&#39; list&#39;未定义的......&#34;
是否有可能在组件构造函数中使用promise?
答案 0 :(得分:0)
Angular2建议在 ngOnInit 内部进行繁重的工作,而不是在构造函数内部。
ngOnInit 是一个生命周期挂钩/事件。
答案 1 :(得分:0)
您正在尝试解决有角度的生命周期。
似乎您假设您的服务是在启动过程中启动的。不是这种情况。即使您的服务是在根级别提供的,也只能及时进行初始化。您可能需要在启动逻辑期间调用一些公共init方法,以确保其初始化。