Apenas por questão de curiosidade: na função "debounceTime", considerando que eu respeite a janela de tempo de 0,5s para clicar no botão após um primeiro clique, o valor de 'timer' neste segundo evento de clique voltaria à ser zero. Então o 'clearTimeout' dentro do 'return' teria novamente o valor zero como parâmetro?