title: When to use doOnTerminate vs doOnUnsubscribe?
body: <p>I need to be notified when something subscribes to my observable. I also need to be notified that the observable has either errored or completed. So I thought I should use <code>doOnSubscribe</code>: </p>
  
  <blockquote>
    <p>register an action to take when an observer subscribes to an
    Observable</p>
  </blockquote>
  
  <p>and <code>doOnTerminate</code>:</p>
  
  <blockquote>
    <p>register an action to take when an Observable completes, either
    successfully or with an error</p>
  </blockquote>
  
  <p>Then I saw <code>doOnUnsubscribe</code>:</p>
  
  <blockquote>
    <p>register an action to take when an observer unsubscribes from an
    Observable</p>
  </blockquote>
  
  <p>and thought the symmetry of <code>doOnSubscribe</code>/<code>doOnUnsubscribe</code> would be better.</p>
  
  <p>So, will <code>doOnTerminate</code> always be called before <code>doOnUnsubscribe</code>? If I just want to know that things are "done", does it really matter which I choose?</p>