如何通过咖啡脚本编写带有参数的setTimeout

2022-08-30 01:14:45

请告诉我如何在咖啡脚本中编写下面的javascript。

setTimeout(function(){
    something(param);
}, 1000);

答案 1

我认为这是一个有用的约定,回调作为函数的最后一个参数。例如,Node.js API 通常就是这种情况。因此,考虑到这一点:

delay = (ms, func) -> setTimeout func, ms

delay 1000, -> something param

当然,这会增加您所做的每个额外函数调用的开销;但是在今天的JS解释器中,性能缺陷是微不足道的,除非你每秒做数千次。(无论如何,您正在做什么设置每秒数千个超时?setTimeout

当然,一种更直接的方法是简单地命名你的回调,无论如何,这往往会产生更具可读性的代码(jashkenas是这个成语的忠实粉丝):

callback = -> something param
setTimeout callback, 1000

答案 2
setTimeout ( ->
  something param
), 1000

括号是可选的,但以逗号开头的行对我来说似乎很混乱。