Bom dia. Alguém vê o porque meu decorator não executa?
View:
@logarTempoDeExecucao()
update(model:T){
let template = this.template(model);
if(this._escapar)
template = template.replace(/<script>[\s\S]*?<\/script>/g,'');
this._elemento.html(this.template(model));
}
abstract template(model:T):string;
Decorator:
export function logarTempoDeExecucao() {
return function(target: any, propertyKey: string, descriptor: PropertyDescriptor) {
const metodoOriginal = descriptor.value;
descriptor.value = function(...args: any[]) {
console.log('-----------------------')
console.log(`Parâmetros do método ${propertyKey}: ${JSON.stringify(args)}`);
const t1 = performance.now();
const resultado = metodoOriginal.apply(this, args);
console.log(`Resultado do método: ${JSON.stringify(resultado)}` )
const t2 = performance.now();
console.log(`${propertyKey} demorou ${t2 - t1} ms`);
console.log('-----------------------')
return resultado;
}
return descriptor;
}
}
Negociacoes:
import { Negociacao } from './Negociacao'
import { logarTempoDeExecucao } from '../helpers/decorators/index';
export class Negociacoes{
private _negociacoes: Negociacao[] = [];
@logarTempoDeExecucao()
adiciona(negociacao: Negociacao):void{
this._negociacoes.push(negociacao);
}