Ich habe eine Methode load()
, die in einem globalen Autorisierungsdienst ausgeführt wird, der ein Benutzerobjekt vom Server abruft. Diese Methode wird mit APP_INITIALIZER ausgeführt. Das Verfahren sieht wie folgt aus:Auf globales Benutzerobjekt warten, bevor andere Module initialisiert werden
load(): Promise<any> {
return this.http.get(API_ENDPOINT + ApiConstants.AUTHENTICATE).map(response => response.json() as User).toPromise().then((data: any) => {
this.user = data;
this.translate.use(this.user.language);
});
}
Ich bin mit NGX-übersetzen die Sprache des Benutzers auf dem Server zu erhalten und dann die entsprechende Übersetzungsdatei laden. Mein Übersetzungsmodul sieht folgendermaßen aus:
export class AppTranslationModule {
constructor(private translate: TranslateService, private auth: AuthService) {
translate.addLangs(["en", "de"]);
translate.setDefaultLang("de");
translate.use(this.auth.user.language);
}
}
Das Problem ist, dass das Benutzerobjekt aus dem Auth-Dienst noch nicht definiert ist, wenn die translate.use(this.auth.user.language)
tun. Wie kann ich alles darauf warten, dass das Benutzerobjekt vom Server geladen wird, bevor Sie etwas anderes tun?