Angular 订阅返回空数组

时间:2021-07-13 15:19:42

标签: arrays angular subscribe

使用 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]);
  }

这是控制台日志:

enter image description here

订阅结束后如何保留数据?

1 个答案:

答案 0 :(得分:0)

很正常,因为这两行在 subscribe() 之外。

console.log("data",this.data);

console.log("data [0]",this.data[0]);

根据您的代码,数组“data”将在填充之前被记录。

一旦 observable 在 subscribe 方法中被解析,你就会有可用的数据。