When you call subscribe() to an Observable to receive emissions, a stream is created to process those emissions through the Observable chain. Of course, this uses resources. When we are done, we want to dispose of these resources so that they can be garbage-collected.
Thankfully, the finite Observable that calls onComplete() will typically dispose of itself safely when all items are emitted. But if you are working with an infinite or long-running Observable, you likely will run into situations where you want to explicitly stop the emissions and dispose of everything associated with that subscription. As a matter of fact, you cannot trust the garbage collector to take care of active subscriptions that you no longer need, and explicit disposal is necessary in order to prevent memory leaks.
Disposable is a link between an Observable and an active Observer. You can call...