Ich habe eine Situation, in der ich ein Stück Daten aus dem Speicher in einer Ionic 2-Anwendung abrufen muss und dann diese Daten verwenden, um eine HTTP-Anfrage zu erstellen. Das Problem, auf das ich stoße, ist, dass die SqlStorage-Methoden Versprechungen zurückgeben und das http-Meth eine Observable zurückgibt. Ich habe so etwas zu tun, um es an die Arbeit:Ionic 2/Angular 2 Versprechen, observable
getToken() {
return this.storage.get('token').then((token) => {
this.token = token;
return token;
});
}
loadStuff(){
return this.tokenService.getToken().then(token => {
return this.http.get("https://www.urltodatasource.com/api/v1/Endpoint?access_token="+token).map(res => res.json());
});
}
und dann so etwas zu tun, um es zu arbeiten:
this.tokenService.loadStuff().then(observable => {
observable.subscribe(data => {
this.storage.set('stuff', data);
return data;
});
})
Ich bin sehr neu zu Winkel- und Ionic Im Allgemeinen habe ich das Gefühl, dass es einen viel besseren Weg gibt, um das zu erreichen, was ich versuche, aber ich weiß einfach nicht wie. Auch alle verfügbaren Ressourcen da draußen über Observables sehr kompliziert sehr schnell, die eine beeinflussbare junge Entwickler wie mich sehr verwirrt verlässt.
Kann jemand etwas Licht darauf werfen, wie man das besser macht? Vielen Dank!
Ist 'this.http' in' loadStuff' der Dienst Angular2 'Http'? – yarons
Yup @yarons ist es. Normaler HTTP-Dienst wird am Anfang der Datei importiert und als Abhängigkeit im Konstruktor meines "StuffService" hinzugefügt. – TheBrockEllis