下面是一个小例子,用装饰器来延迟消息发送:
// 利用装饰器来实现消息的延迟const ResponseMessageDecoratorFactory = (times: number): MethodDecorator => {return (...args: any[]) => {const [,, descriptor] = args;const method = descriptor.value;descriptor.value = ()=> {setTimeout(()=> {method();}, times);}}}class Player {@ResponseMessageDecoratorFactory(2000)public run() {console.log('hello,ts!');}}new Player().run()
