In Ionic 2
die get
Funktion für den Zugriff auf localStorage
gibt ein Versprechen. Das Problem mit dem folgenden Code ist, dass das headers
Objekt zurückgegeben wird, bevor es mit dem Schlüssel Authorization
angefügt wurde. Wie kann ich die folgende Funktion so ändern, dass das Objekt headers
erst zurückgegeben wird, nachdem das Versprechen aufgelöst wurde.Angular2 synchrone Versprechen
private _createAuthHeaders(): Headers {
let headers = new Headers({
'Accept': 'application/json',
'Content-Type': 'application/json'
});
this.local.get('authToken').then(res=>{
headers.append('Authorization', res);
}, err=>{
headers.append('Authorization', '');
});
return headers;
}
Auch der Rückgabetyp der Funktion sein sollte '' aber ich wollte nur die Funktion, die 'Headers' Objekt zurückzukehren. Da ich in der Caller-Funktion ein benutzerdefiniertes 'request'-Objekt erstelle, wird der Code überladener, wenn ich ein anderes Versprechen in ihm behandeln muss. –
Die kurze Antwort ist: Sie können nicht ;-) Die längere Antwort ist, dass Sie die Verkettung von Versprechen nutzen können ... Ich aktualisierte meine Antwort mit einem Beispiel für diesen Ansatz –
Vorläufig habe ich das mit dem nativen 'Fenster umgangen .localStorage.getItem ('authToken') 'Funktion, die nur den' String' Typ zurückgibt. Aber ich sollte bei dem Framework bleiben und es irgendwann umgestalten. Vielen Dank. –