macht Ich habe diesen Angular 4-Dienst, der eine HTTP-Anfrage macht und die Daten zurückgibt. Wenn ich jedoch das Ergebnis in der Konsole protokolliere, bekomme ich undefined
.Angular Service, der HTTP-Anfrage
Das ist mein Service:
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
@Injectable()
export class MenuService {
constructor(private http: HttpClient) {
}
menu: any;
getMenu(){
this.http.get('/assets/MENU.json').subscribe(data => {
// Read the result field from the JSON response.
let newValue = JSON.stringify(data).replace('{"Node":', '[');
newValue = newValue.substring(0,newValue.length - 1);
newValue+="]";
this.menu=JSON.parse(newValue);
});
console.log(this.menu);
return this.menu;
}
}
Versuchen Sie zunächst, die Daten in der Anforderungsfunktion zu console.log zu loggen, um zu überprüfen, was Sie in Ihrer Antwort wirklich erhalten. –
@ZiyaddinSadigov innerhalb der Anfrage bekomme ich das JSON-Objekt – eli
@ZiyaddinSadigov, die sie nur weiter verwirren wird, da sie die Antwort * innerhalb des Callback * haben. Der Punkt ist, dass ** dies asynchron ist **. – jonrsharpe