In Scala gibt es das Konzept Futures, wo ein Wert in einer Zukunft gespeichert wird, wenn es fertig ist. Und ich versuche etwas Ähnliches zu finden.Verwenden Sie eine Observable, um Daten über HTTP einmal abzurufen, speichern Sie dann den Wert für die Wiederverwendung.
Zum Beispiel möchte ich Zugriff auf "Benutzer" -Daten. Wenn ich zum ersten Mal darauf zugreife, möchte ich eine Anfrage an den Server senden, um die Daten zu erhalten, aber für alle nachfolgenden Zugriffe möchte ich den gespeicherten Wert verwenden können.
Der folgende Code versucht, etwas Ähnliches zu erreichen. Es garantiert nicht, dass der Anruf zum Server nur einmal erfolgt.
Apologies, ist die folgende in Typoskript:
class AuthenticationService {
http: Http = Some Http Helper...
user: Observable<User> = this.http.get("www.example.com/logged-in-user")
.map(data => {
let userObject = data.json().user
this.user = Observable.of(userObject)
return userObject
})
}
Gibt es einen besseren Weg, dies zu tun?
Lassen Sie mich sehen, ob ich corectly verstehen: Haben Sie alle möchten, dass abonniert immer "user", um das Ergebnis dieses HTTP GET zu erhalten, nicht nur der erste Aufrufer? – acdcjunior