es6 convert coffie coffee javascript settimeout coffeescript

javascript - convert - js to coff



cómo escribir setTimeout con params por Coffeescript (6)

Por favor, dime cómo escribir javascript a continuación en coffeescript.

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


Creo que es una convención útil para que las devoluciones de llamada vengan como el último argumento de una función. Este suele ser el caso con la API Node.js, por ejemplo. Así que con eso en mente:

delay = (ms, func) -> setTimeout func, ms delay 1000, -> something param

Por supuesto, esto agrega la sobrecarga de una llamada de función adicional a cada setTimeout que realice; pero en los intérpretes de JS de hoy, el inconveniente de rendimiento es insignificante a menos que lo esté haciendo miles de veces por segundo. (¿Y qué estás haciendo configurando miles de tiempos de espera por segundo, de todos modos?)

Por supuesto, un enfoque más directo es simplemente nombrar su devolución de llamada, que tiende a producir un código más legible de todos modos (jashkenas es un gran fan de este lenguaje):

callback = -> something param setTimeout callback, 1000


Esto resultará en una traducción aproximadamente equivalente (gracias a @Joel Mueller):

setTimeout (-> something param), 1000

Tenga en cuenta que esto no es una traducción exacta porque la función anónima devuelve el resultado de llamar a something(param) lugar de indefinido, como en su fragmento.


Me parece que este es el mejor método para hacer lo mismo,

setTimeout (-> alert "hi"), 1000


otra opción:

setTimeout( -> something param 1000 )


setTimeout ( -> something param ), 1000

Los paréntesis son opcionales, pero comenzar la línea con una coma me pareció desordenado.


setTimeout -> something param , 1000