每当我引用一个从observable提供数据的变量时,我都会收到一个promise错误 . 例 .
我在组件中定义了我的类Stat:
export class Stats {
name: string;
percentage: number;
constructor(n: string, p: number) {
this.name = n;
this.percentage = p;
}
}
现在这是它变得混乱的地方,我希望从Http的数据填充我的数组所以我这样做
export class StatsComponent {
public stat1: Stats[] = [];
constructor(private _httpService: HttpService, private _http: Http) {
this._httpService.getParams("myURL").subscribe(S => {
this.stat1 = S;
});
}
getParams()为我提取数据,如此可观察
getParams(url: string): Observable<Stats[]>{
return this._http.get(url)
.map(res =><Stats[]>res.json());
}
在stat.component.ts中,我有这个数组,我希望数据填充它 . 抱歉stat2不存在,它只是一个关于我如何填充数据的概念所以我假设我将声明stat2 []与我声明stat1 []的方式相同
public lineChartData: Array<any> = [
{ data: [this.stat1[0].data, this.stat2[0].data], label: 'Data 1' },
{ data: [this.stat1[1].data, this.stat2[1].data], label: 'Data 2' },
{ data: [this.stat1[2].data, this.stat2[2].data], label: 'Data 3' }
];
每当我引用从构造函数中的observable接收数据的任何局部变量时,它们都会抛出Promise Error . 如何使用我的.subscribe范围之外的数据(在构造函数中) .
1 回答
您可以在订阅中移动分配,如下所示:
一些东西:
1)强烈建议构造函数中的异步操作(如获取数据)为 NOT . 请考虑使用ngOnInit方法 .
2)我不确定stat2来自哪里......所以不确定它是否会按原样运行 .