Angular 2 使用 TypeScript 的 HTTP GET:订阅后变量为空
Angular 2 HTTP GET with TypeScript: variable empty after subscribe
我正在尝试调用服务中的 HTTP GET 方法,我的问题是无法正确保存响应。
在我的 app.component.ts:
marker: any;
...
this.formService.getMarker()
.subscribe(( marker: Marker[]) => {
this.marker = marker;
console.log(this.marker); // I get output from db
});
console.log(this.marker); // I get undefined
在我的 app.service.ts:
getMarker(){
return this.http.get('http://localhost:3002/marker')
.map(res => res.text());
}
如何正确保存来自 API 调用的响应,以便我可以在组件中使用它?
@Component({...})
class MarkerComponent(){
marker: any;
getDataFromServer(){
let _self = this;
this.formService.getMarker()
.subscribe(( marker: Marker[]) => {
_self.marker = marker;
_self.cotherFunction(); // this run after the response
});
this.otherFunction() // this run after request
}
otherFunction(){
console.log(this.marker);
}
}
我正在尝试调用服务中的 HTTP GET 方法,我的问题是无法正确保存响应。
在我的 app.component.ts:
marker: any;
...
this.formService.getMarker()
.subscribe(( marker: Marker[]) => {
this.marker = marker;
console.log(this.marker); // I get output from db
});
console.log(this.marker); // I get undefined
在我的 app.service.ts:
getMarker(){
return this.http.get('http://localhost:3002/marker')
.map(res => res.text());
}
如何正确保存来自 API 调用的响应,以便我可以在组件中使用它?
@Component({...})
class MarkerComponent(){
marker: any;
getDataFromServer(){
let _self = this;
this.formService.getMarker()
.subscribe(( marker: Marker[]) => {
_self.marker = marker;
_self.cotherFunction(); // this run after the response
});
this.otherFunction() // this run after request
}
otherFunction(){
console.log(this.marker);
}
}