使用以下服务将结果设置为this.temp,控制台日志在订阅内部时显示结果,但在订阅外部时返回未定义。
1) this.http.get('../../assets/students.json').subscribe((data)=>{
2) this.temp = data;
3) console.log(data);//shows result
4) console.log(this.temp);//shows result
5) })
6) console.log(this.temp);//undefined
但是在控制台行中,首先输出6,然后输出3和4
答案 0 :(得分:1)
发生这种情况是因为通过可观测对象实现了angular中的http调用,该对象将在以后的某个时间点评估asycn。现在,如果您要对数据或this.temp做一些操作,则必须在订阅调用中进行。