Ich programmiere eine App mit IONIC und Typoskript. Ich habe einen Speicheranbieter und einen Netzwerkanbieter erstellt (siehe Pseudocode unten).IONIC stellen Sie sicher, dass der Dienst vor geladen wird
Storage-Anbieter
class SettingsService {
settings;
constructor(private storage: Storage) {
storage.get("settings").then((data) => this.settings = data);
}
getSettings() {
return this.settings;
}
}
Netzbetreiber
class NetworkService {
constructor(private http: http, private settingsService: SettingsService) {}
getData() {
settings = this.settingsService.getSettings();
//Do more stuff
}
}
Wenn ich getData()
die Funktion nun aufrufen kann es vorkommen, dass die Einstellungen nicht definiert ist, weil die SettingsService noch die Einstellungen geladen ist. Wie kann ich im NetworkProvider warten bis die Einstellungen vollständig geladen sind?
Momentan verwende ich setTimeout, um zu prüfen, ob die Einstellungen bereits geladen sind. Aber ich bin nicht glücklich damit.
Danke für Ihre Hilfe :)
Vielen Dank für Ihre Antwort. Es funktioniert gut. Aber gibt es eine Möglichkeit zu warten, bis die Einstellungen geladen sind, anstatt sie zu laden, wenn sie noch nicht geladen sind? – Peter234
Cool zu wissen, dass es funktioniert. Ich verstehe deine Frage nicht, sorry. Doing 'this.storage.get (" settings "). Dann ((data) =>' lass dich warten, bis die Daten geladen sind. –
Mein Fehler, sorry. Eigentlich lade ich die Einstellungen im Konstruktor des SettingsService und in der Methode getSettings() mache ich ein paar Sachen mit den Einstellungen, bevor ich sie zurückschicke, also möchte ich in getSettings warten, bis der Konstruktor die Einstellungen fertig geladen hat .. – Peter234