订阅可观察值

订阅可观察值

问题描述:

当我登录我的变量内的值订阅我有一个值,但外界这样做时,它得到了一个未定义???:订阅可观察值

this._postService.getConf("app/conf/conf.json") 
    .subscribe(res =>{ 
     this.home = JSON.stringify(res); 
     console.log("value :" + this.home); 

我想初始化我家变某一个值,我做它ngOnInit但它是说我很努力之外得到它值undefined:

这是我的函数:

那怎么观测工作。当来自服务器的响应到达时,传递给subscribe(...)的回调被observable调用。

subscribe()之外的console.log()在连接到服务器之前执行。

+0

感谢您的回答,以及如何影响值给我的变量先生?我很轻松做到这一点ngOnInit将修复它 – Anna

+0

“影响到我的变量先生的价值”是什么意思?什么变量?影响如何? –

+0

对不起,我没有解释:我试图得到一个包含数据的json文件:ngOnInit在加载页面时打印数据,以及服务器链接我从文件中获取并影响到它我的var主页,所以在从服务器获取数据之前,我要获得主页的价值,以便通过我的服务推送它,并且我正在对ngOnInit执行此操作,请不要犹豫,询问是否需要更多信息 – Anna

我的ngOnInit()调用了一个从数据库获取数据的进程。 我预计在方法中更新的this.##变量在调用后可用。如上所述,该调用传递给observable,这意味着该变量在ngOnInit()中不可用。但是,当显示HTML页面时,它们都被填充。

所以解决方案是在方法内完成所有需要的工作,然后引用将在HTML中填充的变量。

this.service.getCity(zip).subscribe(
    data => { 
     if (data.errStatus == 0) { 
      console.log("data: " + data.xx.List); 

      this.xx.List = data.xx.List; 
      console.log("data2: " + this.xxList); 
     } else { 
      data.errText; 
      console.log(data.errText); 
     } 
    }, 
    err => console.error(err), 
    () => console.log('done') 
);