Javascript 订阅并在Angular 2中映射
我尝试从json文件中获取数据Javascript 订阅并在Angular 2中映射,javascript,angular,typescript,Javascript,Angular,Typescript,我尝试从json文件中获取数据 ngOnInit() { this.http.get('assets/json/buildings.json', { responseType: 'text'}) .map(response => response) .subscribe(result => this.data = result); console.log(this.data); } 但是我得到了未定义的。。。你能帮我解释一下为什么我没有得到我的数据
ngOnInit() {
this.http.get('assets/json/buildings.json', { responseType: 'text'})
.map(response => response)
.subscribe(result => this.data = result);
console.log(this.data);
}
但是我得到了
未定义的。。。你能帮我解释一下为什么我没有得到我的数据吗 您正在得到未定义,因为您的调用日志马上就开始了,但是设置“数据”的响应是异步的,因此在api返回值之前,它不会被设置
如果您这样做了:
this.http.get('assets/json/buildings.json', { responseType: 'text'})
.map(response => response)
.subscribe(result => {
this.data = result;
console.log(this.data);
});
您将看到该值,因为现在您正在等待,直到它被异步获取,直到您尝试记录它。因为您的调用日志马上就被定义了,但是设置“数据”的响应是异步的,所以直到api返回一个值,它才被设置
如果您这样做了:
this.http.get('assets/json/buildings.json', { responseType: 'text'})
.map(response => response)
.subscribe(result => {
this.data = result;
console.log(this.data);
});
您会看到该值,因为现在您正在等待,直到它被异步获取,直到您尝试记录它。如果您只是返回响应,为什么还要使用map函数
this.http.get('assets/json/buildings.json', { responseType: 'text'})
.subscribe(result => {
this.data = result;
console.log(this.data);
});
如果只是返回响应,为什么还要使用map函数
this.http.get('assets/json/buildings.json', { responseType: 'text'})
.subscribe(result => {
this.data = result;
console.log(this.data);
});
为什么在订阅之前返回selfarray
?为什么在订阅之前返回selfarray
?