Inscrever-se para observável está retornando indefinido
Então, eu estou tentando assinar um serviço simples que retorna dados de um arquivo JSON local.
Consegui fazer o serviço funcionar, posso desconectá-lo na função, mas quando assino o serviço no componente angular 2, ele sempre é indefinido. Não sei por que? Qualquer ajuda seria muito apreciada.
Serviço de 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);
}
}
Componente
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;
});
}
}