title: rxjs takeUntil do not execute finalize
body: <p>I have the following countdown:</p>
  
  <pre><code>userClick=new Subject()
  
  resetCountdown(){this.userClick.next()}
  
  setCountDown() {
      let counter = 5;
      let tick = 1000;
      this.countDown = timer(0, tick)
      .pipe(
        take(counter),
        map(() =&gt; --counter),
        takeUntil(this.userClick),
        finalize(() =&gt; {
          if (this.currentQuestionNumber &lt; this.questionsToAsk)
            this.showNextQuestion();
          else {
            this.endQuiz();
          }
  
        })
      );
  }
  </code></pre>
  
  <p>When <code>takeUntil(this.userClick)</code> occurs, I do not want <code>finalize</code> to be executed. Is there any possibility to achieve that? I only want <code>finalize</code> to be executed when the countdown has reached <code>0</code> and was not interrupted before by <code>takeUntil</code></p>