tom*_*ian 206 javascript settimeout coffeescript
请告诉我如何在coffeescript中写下面的javascript.
setTimeout(function(){
something(param);
}, 1000);
Run Code Online (Sandbox Code Playgroud)
Tre*_*ham 212
我认为回调作为函数的最后一个参数是一个有用的约定.例如,Node.js API通常就是这种情况.所以考虑到这一点:
delay = (ms, func) -> setTimeout func, ms
delay 1000, -> something param
Run Code Online (Sandbox Code Playgroud)
当然,这会增加额外函数调用的开销setTimeout; 但在今天的JS解释器中,性能缺陷是微不足道的,除非你每秒做数千次.(无论如何,你在做什么设置成千上万的超时?)
当然,更直接的方法是简单地命名你的回调,这往往会产生更可读的代码(jashkenas是这个成语的忠实粉丝):
callback = -> something param
setTimeout callback, 1000
Run Code Online (Sandbox Code Playgroud)
小智 181
setTimeout ( ->
something param
), 1000
Run Code Online (Sandbox Code Playgroud)
括号是可选的,但用逗号开始这行似乎对我来说很麻烦.
mae*_*ics 46
这将导致大致相同的翻译(感谢@Joel Mueller):
setTimeout (-> something param), 1000
Run Code Online (Sandbox Code Playgroud)
请注意,这不是一个精确的转换,因为匿名函数返回调用的结果something(param)而不是undefined,如在您的代码段中.
Mah*_*rni 12
我发现这是做同样的最佳方法,
setTimeout (-> alert "hi"), 1000
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
67264 次 |
| 最近记录: |