Unsubscribing versus completing an Observable
We know that when we have an observer we'll stop receiving items when the source Observable completes or when we manually unsubscribe. However, we haven't talked about why we might choose one over the other.
There're basically two ways to stop receiving items:
Unsubscribe from the source Observable
Using an operator that completes the chain (such as the
takeUntil()
operator)
By unsubscribing we usually mean that we don't want to be receiving items any more. This obviously doesn't mean that the source Observable stopped sending items or sent the complete notification. We're just no longer interested in the items coming from the source.
As an important consequence to manually unsubscribing, the complete handler is never called. Consider the following example where we unsubscribe after receiving a few items:
// unsubscribe_01.php $loop = new StreamSelectLoop(); $scheduler = new EventLoopScheduler($loop); $subscription = Observable...