Comment utiliser setTimeout() en Coffeescript
Je n'arrive pas à utiliser setTimeout() pour appeler l'un de mes propres fonctions. Je peux utiliser setTimeout d'alerte d'appel(), mais pas une fonction que j'ai écrite moi-même. Voici le code le plus simple qui reproduit le problème:
J'ai le texte suivant coffeeScript
setTimeout(run, 1000)
run = () ->
console.log("run was called!")
Qui génère le code Javascript suivant
//Generated by CoffeeScript 1.6.3
(function() {
var run;
setTimeout(run, 1000);
run = function() {
return console.log("run was called!");
};
}).call(this);
Rien n'est imprimé sur la console.
- Je ne sais pas coffeescript mais il semble que vous essayez d'appeler une fonction où vous devez juste être de passage de paramètres / etc.
setTimeout(() => { // Some code }, 1000);
Vous devez vous connecter pour publier un commentaire.
Vous êtes en s'appuyant sur la fonction javascript de levage pour les fonctions déclarées avec la syntaxe
function run(){}
, mais coffeescript déclare que les variables:var run = function(){}
, de sorte que vous devez définir la fonction avant que vous y faites référence, sinon c'est toujoursundefined
lorsque vous passez àsetTimeout
.Anonyme Option:
Pierre est tout à fait exact. Mais vous pouvez également utiliser
setTimeout
sans déclarer une variable:Rendements:
console.log
déclaration en coffeescript. Si seulement 2 places, ça ne marchera pas. En Coffeescript chaque onglet ou 2 espaces, tirets d'un niveau.setTimeout((-> someFunction()), 1000)