我无法使用http的角度获取结果

问题描述 投票:0回答:1

早上好我无法使用此请求的结果(我想在局部变量中使用它)这是我放在ngOnInit中的代码

  appli:any=[];
  ngOnInit() {

    this.http.get<any>(this.url).subscribe(data => {
      console.log(data) //returns data
      for (let item of data) {
        this.appli.push(item)
      }
      console.log(this.appli) //returns data
    });
    console.log(this.appli) //returns data
    console.log(this.appli[0]) //returns undefined
    console.log(this.appli.length)// returns 0

  }


angular httpclient
1个回答
0
投票

使用可观察对象时的默认行为。

console.log(this.appli[0]) //returns undefined
console.log(this.appli.length)// returns 0

上面的行返回undefined和0,因为它们不在Subscribe函数的范围内,并且即使在收到API响应之前也将执行。 this.http.get返回一个可观察的并且不会停止代码执行]

如果将上面的控制台语句放在Subscribe函数中,这些将打印正确的输出。

© www.soinside.com 2019 - 2024. All rights reserved.