为什么我的回调是作为字符串发送的?

时间:2014-05-30 09:41:09

标签: javascript node.js

我正在回调一个javascript函数,由于某种原因它正在接收它作为一个字符串。我正在使用node.js,如果这很重要。

execProg('runCheck','data=data1',
    function (error, stdout, stderr){
        console.log("isWorking");
    });

execProg = function (args,callback){ 
    var cmdString = 'php -f '+pathprefix+'processing.php '+args;
    console.log(typeof callback);
    exec(cmdString, callback);
};

当我这样做时,这是有效的:

execProg = function (args,callback){ 
    var cmdString = 'php -f '+pathprefix+'processing.php '+args;
    console.log(typeof callback);
    exec(cmdString, function(error, stdout, stderr){console.log("isWorking1"});
};

但是,当使用通过函数execProg参数发送的回调时,它认为它是stringconsole.log(typeof callback);

证明了这一点

我已经做过无数次了,但是这次我正在使用node.js,而且我可能会遗漏一些我没注意到的东西,但除了那些可能性之外,似乎没有任何我可以想到。

1 个答案:

答案 0 :(得分:1)

您尝试将2个参数'runCheck'和'data = data1'作为一个参数发送。将它们连接成一个。

execProg('runCheck data=data1',
    function (error, stdout, stderr){
        console.log("isWorking");
});