Diga-me como escrever javascript abaixo em coffeescript.
setTimeout(function(){
something(param);
}, 1000);
javascript
settimeout
coffeescript
tomodiano
fonte
fonte
Respostas:
Eu acho que é uma convenção útil para retornos de chamada virem como o último argumento para uma função. Geralmente é o caso da API do Node.js., por exemplo. Então, com isso em mente:
Concedido, isso adiciona a sobrecarga de uma chamada de função extra para cada coisa que
setTimeout
você faz; mas nos intérpretes JS de hoje, a desvantagem do desempenho é insignificante, a menos que você o faça milhares de vezes por segundo. (E o que você está fazendo definindo milhares de tempos limite por segundo, afinal?)Obviamente, uma abordagem mais direta é simplesmente nomear seu retorno de chamada, o que tende a produzir código mais legível de qualquer maneira (jashkenas é um grande fã desse idioma):
fonte
Os parênteses são opcionais, mas iniciar a linha com uma vírgula me pareceu confuso.
fonte
setTimeout
e o ponto inicial é importante. O espaço ali significa que os parênteses estão ao redor do fechamento como o primeiro parâmetro a setTimeout; se fosse logo após o t, o coffescript esperaria que os parênteses incluíssem os dois parâmetros.fonte
something param
estiver na mesma linha quesetTimeout
, será analisado de maneira diferente.Isso resultará em uma tradução aproximadamente equivalente (obrigado @Joel Mueller):
Observe que essa não é uma tradução exata porque a função anônima retorna o resultado da chamada em
something(param)
vez de indefinida, como no seu snippet.fonte
setTimeout (() -> something param), 1000
Acho esse o melhor método para fazer o mesmo,
fonte
outra opção:
fonte