使用 http.get().subscribe 数据返回为空数组,但是如果我在订阅代码中调用 console.log() 数组正确显示。
这是代码:
public data: Noticia[] = [];
public api = "http://localhost:3000/data"
constructor(
private httpClient: HttpClient
) { }
ngOnInit() {
this.httpClient.get(this.api).subscribe((response: Noticia[]) =>{
response.forEach(news =>{
this.data.push(news);
});
console.log("data in subscribe", this.data);
});
console.log("data",this.data);
console.log("data [0]",this.data[0]);
}
这是控制台日志:
订阅结束后如何保留数据?
答案 0 :(得分:0)
很正常,因为这两行在 subscribe() 之外。
console.log("data",this.data);
console.log("data [0]",this.data[0]);
根据您的代码,数组“data”将在填充之前被记录。
一旦 observable 在 subscribe 方法中被解析,你就会有可用的数据。