私は初めてですcoffeescript
。そして、JavaScript の変数スコープの穴に落ちました。
node.js
クラスなし(まだ)、最小限の関数型プログラミングシュガー(まだ)を使用して、単純なコンソールスクリプトを開発しようとしています。ここに行きます:
fs = require 'fs'
code = "test"
fs.readFile 'COD99000430.TXT', (err, contents) ->
code = contents.toString()
console.log code
次の JavaScript にコンパイルされます。
// Generated by CoffeeScript 1.3.3
(function() {
var code, fs;
fs = require('fs');
code = "test";
fs.readFile('COD99000430.TXT', function(err, contents) {
return code = contents.toString();
});
console.log(code);
}).call(this);
問題は、そのコード コンソールを実行した後、明らかに変数test
の初期値であるword のみが表示されることです。code
しかし、ファイルの内容が表示されることを期待していCOD99000430.TXT
ます。console.log code
そして、呼び出しで匿名コールバック関数のスコープ内に入れると、実際にそれを見ることができfs.readFile
ます。
私はcoffieescript のドキュメントを見てきましたが、まったく同じケースが説明されていました。しかし、何らかの理由でそれは私にはうまくいきません。
node.js
Windows 7、coffeescript
バージョン 1.3.3でバージョン 0.8.2を使用しています。
私の場合、「グローバルスクリプト」変数を持つことは可能ですか? コーヒースクリプトを介してこれを達成するにはどうすればよいですか?