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