Olá,
Conforme o código que estamos fazendo na aula, quando rodamos o cronômetro ele decresce até o "0" segundos, mas o item só é marcado como completado 1 segundo depois disso, quando o setTimeout roda o intervalo de 1 segundo e roda o código da função regressiva e o if avalia como falso e pula para a execução da função finalizarTarefa.
Fiquei pensando em alguma forma de fazer o item ser marcado como completado junto com o cronômetro chegando a zero, mas só pensei na opção de colocar um if primeiro e testar se contador chegou a zero, assim: if(contador == 1) finalizarTarefa();
Interessante foi notar que só funcionou como eu queria se eu colocar a condição de contador == 1, se testar para igual a 0 dá no mesmo. Alguma sugestão para implementar essa lógica de outra forma? Ou melhor, será que a função setTimeout tem a opção de executar o código ANTES do intervalo informado?