我是新手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);
问题是在运行该代码控制台后只显示 word test
,这显然是code
变量的初始值。但我希望看到COD99000430.TXT
文件的内容。实际上我可以看到它,如果我console.log code
在调用中放入匿名回调函数的范围内fs.readFile
。
我查看了coffieescript 文档,并描述了完全相同的情况。但由于某种原因,它对我不起作用。
我在 Windows 7版本 1.3.3上使用node.js
版本 0.8.2 。coffeescript
在我的情况下是否可以有“全局脚本”变量?我如何通过咖啡脚本实现这一目标?