以下代码在第一个 .then 上出错:
/Users/danielbyrne/working/mite_npm/mite.js:48
.then(configMan.validateSettings(parsedData))
ReferenceError: parsedData is not defined
我不明白为什么这段代码会失败。来电:
parseConfigurationFile(path.join(__dirname,'file.config'))
.then(validateSettings(parsedData));
它调用的函数:
function parseConfigurationFile(fileName) {
var readFile = q.nfbind(fs.readFile);
readFile(fileName,"utf-8")
.then(function(data) {
var deferred = q.defer();
// Return the Config 'settings' in JSON
deferred.resolve(JSON.parse(data));
return deferred.promise;
});
}
function vaidateSettings (data) {...}
唯一可行的方法是,如果我将函数 validateSettings 更改为匿名函数并将其像这样内联:
parseConfigurationFile(path.join(__dirname,'file.config'))
.then(function(parsedData){...});
为什么我不能以这种方式链接命名函数?