Angular - typ BehaviorSubject

Autor podstrony: Krzysztof Zajączkowski

Stronę tą wyświetlono już: 4665 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ć:

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:

let behaviorSubject: BehaviorSubject<string> = new BehaviorSubject<string>('Some start value'); let firstSubscibent = behaviorSubject.subscribe( value => console.log('First subscribe value', value) ); console.log('Start value of BehaviorSubject', behaviorSubject.value); behaviorSubject.next('Next value'); behaviorSubject.next('Another one'); let nextSubscibent = behaviorSubject.subscribe( value => console.log('Second subscribe value:', value) ); console.log('End value of BehaviorSubject', behaviorSubject.value);

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.

Propozycje książek