所以我试图订阅从本地JSON文件返回数据的简单服务。订阅observable正在返回undefined
我已经设法让服务工作,我可以在函数中注销它,但是当我订阅角2组件中的服务时,它总是未定义的。我不知道为什么?任何帮助将非常感激。
API服务
export class ApiService {
public data: any;
constructor(private _http: Http) {
}
getData(): any {
return this._http.get('api.json').map((response: Response) => {
console.log('in response', response.json()); //This logs the Object
this.data = response.json();
return this.data;
})
.catch(this.handleError);
}
}
组件
export class AppComponent {
public data: any
public informationData;
constructor(private _api: ApiService) {}
public ngOnInit(): void {
console.log(this.getDataFromService()); // This return undefined
}
public getDataFromService() {
this._api.getData().subscribe(response => {
this.informationData = response;
return this.informationData;
});
}
}
'getDataFromService'本身并不返回任何东西。将'.subscribe'更改为'.map'并返回结果的可观察值,然后使用'|异步“在模板中解析它。 – jonrsharpe
订阅功能不会返回数据。它返回一个'Subscription'对象。即如果你返回函数调用本身。 –
@SurajRao是的,我注意到了这一点,我如何得到它返回响应数据? –