下記のjavascriptをcoffeescriptに書き込む方法を教えてください。coffeescriptでparamsを使用してsetTimeoutを書き込む方法
setTimeout(function(){
something(param);
}, 1000);
下記のjavascriptをcoffeescriptに書き込む方法を教えてください。coffeescriptでparamsを使用してsetTimeoutを書き込む方法
setTimeout(function(){
something(param);
}, 1000);
コールバックが関数の最後の引数になるのは便利な規則です。これは、通常、たとえばNode.js APIの場合です。だから、このことを念頭に置いて:
確かdelay = (ms, func) -> setTimeout func, ms
delay 1000, -> something param
、これはあなたが作るすべてのsetTimeout
に余分な関数呼び出しのオーバーヘッドを追加します。今日のJSインタプリタでは、1秒間に数千回実行しない限り、パフォーマンスの欠点は重要ではありません。
もちろん、より簡単なアプローチは、コールバックの名前を付けることです(これは、とにかく可読性の高いコードを生成する傾向があります(jashkenasはこれの大きなファンです)。イディオム):
callback = -> something param
setTimeout callback, 1000
ネストされたコールバックを必要としない限り素晴らしい –
Nice answer !!!! –
これは、ほぼ同等の翻訳(感謝@Joelミューラー)になります:匿名関数はsomething(param)
を呼び出す代わりに結果を返すため、これは正確な翻訳ではないことを
setTimeout (-> something param), 1000
注意あなたのスニペットのように未定義です。
括弧/セミコロンが多すぎます!これはCoffeeScriptで、余分な括弧を取り除くことが半分のポイントです。 'setTimeout(() - > something param)、1000' –
@Joel Mueller:ありがとう、私は私の答えを更新しました。 – maerics
Nicholasは、空の括弧もオプションであるという良い点を作っています。 –
setTimeout ->
something param
, 1000
これは、無名関数を使用したい場合に最適です。 –
名前付き関数の場合も、setTimeout namedFunc、5000 –
空白は重要であることに注意してください。コールは、上記のように正確に配置する必要があります。 'something param'が' setTimeout'と同じ行にある場合、それは異なって解析されます。 – henrebotha
別のオプション:
setTimeout(
-> something param
1000
)
私はこれを同じに行うための最善の方法を見つける、
setTimeout (-> alert "hi"), 1000
このインラインスクリプトが好きです –
私は正確に私が探していたものではなく、答えが正しい方向に私を導きます。 – MikeScott8
これは大きな質問です。それは私がCoffeescriptの限界を発見する手助けをしているいくつかのうちの1つです(今のように)。 – thure
これに.call( 'hello')を追加するにはどうすればいいですか – Atul