所以我試圖訂閱從本地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是的,我注意到了這一點,我如何得到它返回響應數據? –