RxJs Subjects
RxJs is used a lot in the Angular
ecosystem, thus, it is important to
know.
Subjects are one of the main
concepts of RxJS.
A Subject is an Observable, a
special type of Observable.
Subjects can be multicast to
multiple observers.
Subject
The Subject's ecosystem is the
following:
1) You create the Subject
Observable.
2) You subscribe to the Subject.
3) You feed values thru the .next()
method and ONLY then we are
emitting those values.
Please look at the next page for a
code example.
Subject
This is the code example of a
Subject Observable.
BehaviorSubject
The BehaviorSubject's ecosystem
is the following:
1) You create the BehaviorSubject
Observable and give it a value.
2) You can feed values with .next()
however it will NOT emit because
we aren't subscribed.
3)You subscribe to the
BehaviorSubject and it will EMIT the
latest value fed or the default value.
4) You can still feed values and it will
emit them.
BehaviorSubject
This is the code example of a
BehaviorSubject Observable.
ReplaySubject
The ReplaySubject's ecosystem is
the following:
1) You create the ReplaySubject's
Observable and configure it.
2) You can feed values with .next()
but it will NOT emit because we
aren't subscribed.
3) You subscribe to the
ReplaySubject and it will EMIT the
data given the configuration.
4) You can still feed it values and it
will emit them.
ReplaySubject
This is the code example of a
ReplaySubject Observable.
AsyncSubject
The AsyncSubject's ecosystem is
the following:
1) You create the AsyncSubject
Observable.
2) You subscribe to the Subject.
3) You feed values thru the .next()
method.
4)It will emit the latest value once
the AsyncSubject completes thru
the .complete() method.
AsyncSubject
This is the code example of an
AsyncSubject Observable.