As we mentioned earlier, there are a lot of varieties available for Subject
s. As we have gained some grip in Subject
, let's now dive into varieties of Subject
to understand it better. So, these are some of the most useful and important varieties of Subject
, which we will discuss here:
AsyncSubject
PublishSubject
BehaviorSubject
ReplaySubject
AsyncSubject
only emits the last value of the source observable (Observable
it listens on), and the last emission only. To say things more clearly, AsyncSubject
will emit the last value it got, and will emit it only one time.
This is a marble diagram for AsyncSubject
, which has been taken from ReactiveX documentation (http://reactivex.io/documentation/subject.html):
Let's consider the following code example:
fun main(args: Array<String>) { val observable = Observable.just(1,2,3,4)//1 val subject = AsyncSubject.create<Int>()//2 observable.subscribe(subject)//3 subject.subscribe...