angular - 无法在 Angular 6 中使用 subscribe() 方法之外的获取数据
问题描述
我正在使用 Angular 6 服务从节点服务器获取对象。
getMasterObj () {
this.http.get(this.url1).subscribe(
(data) =>{
this.masterChartObj1 = data;
console.log(this.masterChartObj1) // data is getting printed
})
console.log(this.masterChartObj1) // undefined
}
在同一个类中,我将一个对象定义为
public masterChartObj1;
我正在使用 subscribe 方法中收到的数据初始化该对象。正如在 console.log 中检查的那样,它被打印出来,但在订阅者方法之外未定义。
我也以另一种方式尝试过相同的方法,但输出仍然相同。
getMasterObj () {
let parent_scope = this;
this.http.get(this.url1).subscribe(
(data) =>{
parent_scope.masterChartObj1 = data;
console.log(parent_scope.masterChartObj1) // data is getting printed
})
console.log(this.masterChartObj1) // undefined
}
请让我知道,如果我做错了什么......
解决方案
这是因为 observables 是异步的。您正在订阅 subscribe 方法中的异步数据。在 subscribe 方法中初始化之前,您无法访问该数据。这就是为什么你变得不确定
推荐阅读
- azure-devops - 从 Azure DevOps 分析中提取 sprint 计划时间的快照
- c++ - 在使用 MinGW 编译器在代码块中运行它后得到这个“进程返回 -1073741571 (0xC00000FD)”
- javascript - 使用JS更改按钮单击时的背景颜色
- reason - 你如何在 ReScript/ReasonML 中调用带有单位的 uncurried 函数?
- normal-distribution - 无法正确计算 np.cov()
- postgresql-9.5 - 尝试将视图从 oracle 转换为 PostgreSQL,出现错误关系“sys.dba_data_files”不存在
- docker - docker.sock 绑定挂载 AWS ECS Fargate
- bash - Shell、IFS、读取和制表
- python - sympy - 积分的奇怪行为。解决方案中包含大量数字的数字
- angular - 在角度 11 中安装 ng-bootstrap 时出错