Stronę tą wyświetlono już: 4946 razy
Na stronie Programowanie → Angular - podstawy → Angular - typ Observable opisywałem interesujące zagadnienia związane z typem Observable. Nadeszła jednak doniosła chwila, aby zająć się typem BehaviorSubject, który rozszerza funkcjonalność typu Observable o pewne nowe zachowania dające nowe możliwości. Do różnic pomiędzy tymi dwoma typami obiektów należy wymienić:
- w przypadku Observable dane można otrzymać jedynie poprzez subskrybcję, w przypadku BehaviorSubject zapamiętywany jest ostatni wprowadzony stan, do którego można się odwołać za pomocą gettera value lub otrzymać tę wartość poprzez subskrypcję;
- BehaviorSubject wymaga zainicjowania wartością początkową
Tak więc, niezależnie kiedy i o jakiej porze dnia czy nocy zasubskrybujesz się do BahaviorSubject-a zawsze ale to zawsze będziesz otrzymywać ostatnią wartość doń przypisaną. Oto prosty przykład, który mówi więcej niż milion słów:
A oto i co wypluwa konsola przeglądarki:
First subscribe value Some start value Start value of BehaviorSubject Some start value First subscribe value Next value First subscribe value Another one Second subscribe value: Another one End value of BehaviorSubject Another one
Ważne aby pamiętać o odsubskrybowaniu się w destruktorze. Bez tego będzie dochodziło do wycieków pamięci.