Veuillez me dire comment écrire javascript ci-dessous en coffeescript.
setTimeout(function(){
something(param);
}, 1000);
javascript
settimeout
coffeescript
tomodian
la source
la source
Réponses:
Je pense que c'est une convention utile pour que les rappels soient le dernier argument d'une fonction. C'est généralement le cas avec l'API Node.js, par exemple. Donc, avec cela à l'esprit:
Certes, cela ajoute la surcharge d'un appel de fonction supplémentaire à chaque que
setTimeout
vous faites; mais dans les interpréteurs JS d'aujourd'hui, l'inconvénient des performances est insignifiant à moins que vous ne le fassiez des milliers de fois par seconde. (Et que faites-vous en définissant des milliers de délais d'attente par seconde, de toute façon?)Bien sûr, une approche plus simple consiste à simplement nommer votre rappel, ce qui tend à produire un code plus lisible de toute façon (jashkenas est un grand fan de cet idiome):
la source
Les parenthèses sont facultatives, mais commencer la ligne par une virgule m'a semblé compliqué.
la source
setTimeout
et la paren d'ouverture est important. L'espace signifie que les parenthèses entourent la fermeture comme premier paramètre de setTimeout; si c'était directement après le t, alors coffescript s'attendrait à ce que les parenthèses entourent les deux paramètres.la source
something param
est sur la même ligne quesetTimeout
, il est analysé différemment.Cela se traduira par une traduction à peu près équivalente (merci @Joel Mueller):
Notez que ce n'est pas une traduction exacte car la fonction anonyme renvoie le résultat de l'appel
something(param)
au lieu d'undefined, comme dans votre extrait de code.la source
setTimeout (() -> something param), 1000
Je trouve que c'est la meilleure méthode pour faire de même,
la source
une autre option:
la source