如何用Coffeescript的params编写setTimeout
请告诉我如何在coffeescript中写下面的javascript。
setTimeout(function(){ something(param); }, 1000);
我认为这是一个有用的惯例callback来作为函数的最后一个参数。 例如,Node.js API通常就是这种情况。 所以记住这一点:
delay = (ms, func) -> setTimeout func, ms delay 1000, -> something param
当然,这增加了额外的函数调用的开销,每个setTimeout
你做; 但在今天的JS解释器中,性能缺陷是微不足道的,除非你每秒钟处理数千次。 (无论如何,你在做什么每秒设置数千次超时?)
当然,更直接的方法是简单地给你的callback命名,而这往往会产生更多的可读代码(jashkenas是这个成语的忠实粉丝):
callback = -> something param setTimeout callback, 1000
setTimeout ( -> something param ), 1000
括号是可选的,但用逗号开始行似乎对我来说混乱。
setTimeout -> something param , 1000
这将导致大致相当的翻译(谢谢@Joel Mueller):
setTimeout (-> something param), 1000
请注意,这不是一个确切的翻译,因为匿名函数返callback用的something(param)
而不是未定义的结果,如你的代码片段。
我觉得这是做同样的最好的方法,
setTimeout (-> alert "hi"), 1000
另外一个select:
setTimeout( -> something param 1000 )
- 我如何获得后退button以使用AngularJS UI路由器状态机?
- 如何在CoffeeScript中显式返回对象
- nodejs http.get响应中的body在哪里?
- 如何查看在AngularJS / UI-Router中configuration了哪些状态?
- CoffeeScript – 不允许在Angularexpression式中引用DOM节点
- Grunt:观看多个文件,只编译更改
- 从JavaScript文件或REPL中require()'CoffeeScript文件
- coffeescript – 如何评论? “/ *这个* /”不起作用
- CoffeeScript:对象初始化器中的Getter / Setter