Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular RxJS-对模型对象可见_Angular_Rxjs - Fatal编程技术网

Angular RxJS-对模型对象可见

Angular RxJS-对模型对象可见,angular,rxjs,Angular,Rxjs,我已经开始学习角度观测,我想要的应该相当简单(我认为),但我显然错过了一个重要的步骤 在这里,我订阅了一个observable,它从HTTP Get请求接收回一个类型为“TheModel[]”的数组(该服务处理HTTP调用) 订阅应将从请求返回的对象“TheModel[]”分配给我的本地私有对象,如下所述 但控制台日志值表示“未定义” 该模型是一个简单的ID、名称属性类 我的误解是什么 感谢观测值是异步的,因此在您输入subscribe方法之前,您正在调用console.log,此时thi

我已经开始学习角度观测,我想要的应该相当简单(我认为),但我显然错过了一个重要的步骤

在这里,我订阅了一个observable,它从HTTP Get请求接收回一个类型为“TheModel[]”的数组(该服务处理HTTP调用)

订阅应将从请求返回的对象“TheModel[]”分配给我的本地私有对象,如下所述

但控制台日志值表示“未定义”

该模型是一个简单的ID、名称属性类

我的误解是什么


感谢观测值是异步的,因此在您输入
subscribe
方法之前,您正在调用
console.log
,此时
this的值仍未定义

要使其工作,您应该执行以下操作

this.dataservice.get('TheModel').pipe(…)
.订阅(x=>{
this.TheModel=x;
console.log(this.TheModel)
})

您可以想象订阅与异步回调是一样的,您初始化获取,代码继续运行,一旦检索到数据,您就调用订阅方法(就像回调一样)

尝试将控制台日志移动到
subscribe
中,调用是异步的。调用console.log时,模型尚未准备就绪。Observable是异步的,因此如果Observable尚未完全从http请求接收数据,则在订阅Observable之前调用console.log(…)