1
resposta

Retorno da função que sobscreve a original

Fiquei com uma dúvida em relação a como é feito o retorno da execução da função nesse trecho do código:

function LogarTempoExecucao() {
  return function (target: any, propertyKey: string, descriptor: PropertyDescriptor) {
    const metodoOriginal = descriptor.value;
    descriptor.value = function (...args) {
      const t1 = performance.now();
      const retorno = metodoOriginal();
      const t2 = performance.now();
      console.log(`Tempo de execução do ${propertyKey}: ${t2 - t1}`);
      retorno; // AQUI
    };
    return descriptor;
  };
}

export default LogarTempoExecucao;

É criada uma variavel chamada "retorno", mas que poderia ter qualquer outro nome. Dai ela só é escrita no final, sem a palavra "return" antes e segundo o instrutor é feito o retorno. Fiquei confuso nessa parte.

Alguem poderia me ajudar a compreender melhor o funcionamento desse trecho do código ?

1 resposta

Fala Jair, tudo bem?

Esse realmente foi um erro do instrutor, o correto é colocar a palavra return para que realmente retorne o valor que a função que estamos aplicando o decorator retorna, sem essa palavra será retornado undefined.

Espero ter ajudado, bons estudos :D