我尝试使用http.get从后端获取数组。作为回应,我有:[“Item1”,“Item2”,“Item3”]。
constructor(private http:Http){
this.http.get('api').subscribe(
data => {this.array = data}
);
}
上面的代码使this.array = undefined。 我应该用什么来获得数组?
答案 0 :(得分:0)
请先尝试先控制一下是否收到data
,还需要在.map
之前使用httpClient
(如果您没有使用subscribe
)
constructor(private http:Http){
this.http.get('api')
.map(data => {
console.log(data.json());
reuturn data.json();
)
.subscribe(data => {this.array = data});
}
答案 1 :(得分:0)
您正在访问subscribe之外的值,因为get
是异步的,您无法获得它的价值。
constructor(private http:Http){
this.http.get('api').subscribe(
data => {this.array = data}
console.log(this.array); <== here it won't be undefined
);
}
如果您想访问组件中的array
,可以使用getter
:
get Array() {
return this.array;
}
在组件中,您可以通过this.service.Array
<强>溶液2 强>
您可以使用async
管道。