2016-08-05 7 views
13

Früher in rxjs4 es ein Verfahren, in dem BehaviorSubject erhalten genannt wurde: getValue() (doc here). Diese Methode existiert nicht mehr in rxjs5.einfache Art und Weise den aktuellen Wert eines BehaviorSubject mit rxjs5

So ist die einzige Lösung, die ich den Wert eines BehaviorSubject bekommen gefunden war:

let value; 
myBehaviorSubject.take(1).subscribe((e) => value = e); 

Dieser Code synchron laufen (Ich verstehe nicht genau, warum, aber es funktioniert ...) und den Wert erhalten . Es funktioniert, aber es ist nicht so sauber, wie es sein könnte, wenn getValue() vorhanden ist:

let value = myBehaviorSubject.getValue(); 

Warum getValue() in rxjs5 entfernt wurde und was ist die sauberste Lösung für dieses Problem?

+9

Die 'BehaviorSubject'-Schnittstelle wurde vereinfacht - der Getter wird nur' .value' genannt. –

+0

@arturgrzesiak Ich finde keinen Hinweis darauf. Wert im aktuellen Dokument: http://reactivex.io/rxjs/class/es6/BehaviorSubject.js~BehaviorSubject.html – Clement

+2

Docs möglicherweise nicht auf dem neuesten Stand, aber trotzdem funktioniert es. Sehen Sie auch hier nach: http://reactivex.io/rxjs/test-file/spec-js/subjects/BehaviorSubject-spec.js.html#lineNumber47 –

Antwort

23

Wie von artur grzesiak in den Kommentaren darauf hingewiesen wurde, wurde die BehaviorSubject Schnittstelle aufgeräumt, und der Getter ist jetzt nur .value.

Ich wollte das nur als Antwort hinzufügen, weil ich die Kommentare zur ursprünglichen Frage fast nicht gelesen hatte und die richtige Antwort verpasst hätte.

Verwandte Themen