Olá!
Quando eu faço o uso do event dentro do decorator throttle e vou usar o app, recebo uma mensagem dizendo que "event is not defined". Se removo apenas esta linha, tudo funciona normalmente.
O que pode ser?
export function throttle(milisegundos = 500) {
return function (target: any, propertyKey: string, descriptor: PropertyDescriptor) {
const metodoOriginal = descriptor.value;
let timer = 0;
descriptor.value = function (...args: any[]) {
if (event) event.preventDefault();
clearTimeout(timer);
timer = setTimeout(() => metodoOriginal.apply(this, args), milisegundos);
};
return descriptor;
}
}
@throttle(700)
adiciona() {
let data = new Date(this._inputData.val().replace(/-/g, ','));
if (!this.ehDiaUtil(data)) {
this._mensagemView.update("Somente negociações em dias úteis são aceitas.");
return;
}
const negociacao = new Negociacao(
data,
parseInt(this._inputQuantidade.val()),
parseInt(this._inputValor.val())
);
this._negociacoes.adiciona(negociacao);
this._negociacoesView.update(this._negociacoes);
this._mensagemView.update("Negociação adicionada com sucesso!");
}