Node.js回调不起作用

时间:2011-07-22 11:03:00

标签: node.js callback

我有以下两个Node.js文件:

//test.js
var hash=require('./hash');
var sys=require('sys');

hash.hash("asdf",function(param){
        sys.puts(param);
});

//hash.js:
var exec=require('child_process').exec;
var sys=require('sys');

exports.hash=function(data,callback){
        exec("./a.out "+data,function callback(error,stdout,stderr){
                callback(stdout);
        });
}

如您所见,我正在尝试在test.js中提供stdout

麻烦的是,当我运行node test.js时,我收到以下错误:

eamorr@Compaq6000:~/Desktop/simple-hash$ node test.js 

node.js:134
        throw e; // process.nextTick error, or 'error' event on first tick
        ^
RangeError: Maximum call stack size exceeded

任何人都对我可能做错了什么有任何想法?

非常感谢,


编辑:解决方案:将内部“回调”重命名为“callback2”或其他内容......感谢Idan K指出这一点。

1 个答案:

答案 0 :(得分:1)

当您致电exec时,您正在命名匿名函数callback。它与hash的第二个参数同名,因此递归。