在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
答案 0 :(得分:2)
this.backend.getGrid()
是可观察的类型,因此被异步调用。 console.log("3: " + this.imagesPerRow);
在它外面,因此该行首先被执行。因此,您得到undefined
。在可观察函数中声明