1
resposta

Variavel timer no descriptor throttle

Nao consigo usar a variavel timer no setTimeOut():


  export function throttle(milissegundos:number = 500){

    return function(target: any, propertyKey: string, descriptor: PropertyDescriptor){

            /* Implementacao do metodo original dentro do .value */
            const metodoOriginal = descriptor.value;
            let timer: any = 0;

            /* Chamada do metodo original */
            descriptor.value = function(...args:any[]){ /* Transforma todos os argumentos em uma array de argumentos */

                if(event) event.preventDefault();

                clearInterval(timer);
                timer = setTimeout(() => metodoOriginal.apply(this,args),milissegundos);
                /* Arrow function sem {} tem o return implicito */
            }

            return descriptor;
        }
    }
1 resposta

Oi Mateus,

Em qual ponto você tentou usar a variável e não conseguiu? Qual erro aparece pra você?