每当我引用从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不存在,它只是一个关于我如何填充数据的概念所以我假设我以与声明stat1 []
相同的方式声明stat2 [] 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范围之外的数据(在构造函数中)。
答案 0 :(得分:0)
您可以在订阅中移动分配,如下所示:
use YOUR_DATABASE_NAME
go
exec sp_configure 'remote query timeout (s)',6000
RECONFIGURE WITH OVERRIDE;
一些事情:
1)强烈建议构造函数中的异步操作(如获取数据) NOT 。请考虑使用ngOnInit方法。
2)我不确定stat2的来源......所以不确定这是否会按原样运作。