用于setTimeout()函数的TypeScript装饰器

时间:2017-11-06 10:11:25

标签: javascript angular typescript angular-decorator

我已经开始学习如何在我的应用程序中实现TypeScript装饰器。 所以我从def appendAccount(All_users, username, password, sname, year, age): with open(All_users, 'a') as csv_file: .... # here should be continuation 开始。它是一个方法装饰器,它在一段时间后执行方法。

例如:

setTimeout

这是我的实施:

@Decorators.timeout()
 public someMethod () {}

这是我得到的错误:

  

提供的参数与呼叫目标的任何签名

都不匹配

可能是什么问题?

2 个答案:

答案 0 :(得分:4)

您的args函数中缺少Timeout(),您应该将这些args传递给原始方法:

descriptor.value = function Timeout (...args) {

    setTimeout(() => {

      originalMethod.apply(this, args);

    }, 2000);
};

然后你应该删除这一行,因为它没有做任何事情:

let decArguments = arguments;

答案 1 :(得分:0)

您可以在utils-decorators lib中查看延迟装饰器: 这是文档的链接:partitioning guide

,然后执行:https://github.com/vlio20/utils-decorators#delay-method