Estou recebendo erro ao executar a importação usando o decorator throttle
Código do decorator:
export function throttle(delay: number = 500){
return function(target: any, propertyKey: string, descriptor: PropertyDescriptor){
const metodoOriginal = descriptor.value;
let timer: number = 0;
descriptor.value = function(...args: any[]){
if(event) event.preventDefault();
clearInterval(timer)
timer = setTimeout(() => metodoOriginal.apply(this.args), delay);
}
return descriptor;
}
}
Já a função importaDados:
@throttle()
importaDados(){
function retornouSucesso(res: Response){
if(res.ok){
return res
} else{
throw new Error(res.statusText);
}
}
this._negociacaoService
.obterNegociacoes(retornouSucesso)
.then(negociacoes => {
negociacoes.forEach(negociacao =>
this._negociacoes.adiciona(negociacao)
);
this._negociacoesView.update(this._negociacoes);
});
}
Os erros em questão, ocorrem no console do navegador:
util.js:56 Uncaught TypeError: Cannot read property 'fn' of undefined
at util.js:56
at util.js:10
at bootstrap.min.js:6
at bootstrap.min.js:6
(anonymous) @ util.js:56
(anonymous) @ util.js:10
(anonymous) @ bootstrap.min.js:6
(anonymous) @ bootstrap.min.js:6
e:
negociacaoController.js:55 Uncaught TypeError: Cannot read property '_negociacaoService' of undefined
at importaDados (negociacaoController.js:55)
at setTimeout (throttle.js:12)
Não estou conseguindo identificar o problema... Ao comentar a chamada do decorator o erro não ocorre.