1
resposta

No throttle o 'if (jarodei) return;' é necesário? porquê?

Na aula 3, video 3, é executado:

jarodei = false;
function (){
    if(jarodei) return;
jarodei = true;
setTimeout(function(){
    jarodei = false;
}, 100); 

}

não consegui entender o motivo desse if, ao meu ver ele nunca será executado, pois ao chegar nele sempre será false.

1 resposta

Fala ai Cicero, tudo bem? Na verdade ele vai ser executado, a ideia é mais ou menos assim:

A primeira vez o jarodei será false, então não vai cair no if então o valor do mesmo será mudado para true e será agendado uma função que após 100 milissegundos irá mudar o valor do mesmo para false novamente (setTimeout).

Sendo assim, caso você chame a função novamente em menos de 100 milissegundos o valor do jarodei ainda é true, onde iria entrar no primeiro if e realizar o return.

Depois de 100 milissegundos, o valor será false e o processo irá se repetir.

Espero ter ajudado.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software