在ngOnInit中获取未定义的变量

时间:2019-06-03 11:41:53

标签: angular

ngOnInit()函数中,我从服务接收数据,以供其余组件使用。我的问题是,将数据保存到变量后,在订阅之外的任何地方都未定义。我不确定为什么。

代码:

export class HomeComponent implements OnInit {

  imagesPerRow: number;

  constructor(private backend : HttpService) {
  }

  ngOnInit() {
    this.backend.getGrid().subscribe((data)=>{
      console.log("1: " + data);
      this.imagesPerRow = parseInt(data);
      console.log("2: " + this.imagesPerRow);
    });

    console.log("3: " + this.imagesPerRow);
  }
}

我的控制台在Chrome输出中:

3: undefined
1: 2
2: 2

1 个答案:

答案 0 :(得分:2)

this.backend.getGrid()是可观察的类型,因此被异步调用。 console.log("3: " + this.imagesPerRow);在它外面,因此该行首先被执行。因此,您得到undefined。在可观察函数中声明