Node.JS - Node-PowerShell返回值

时间:2016-02-12 22:21:29

标签: node.js

我正在使用https://www.npmjs.com/package/node-powershell中的node-powershell模块。

var shell = require('node-powershell'); 
PS = new shell('echo "node-powershell is awesome"'); 
PS.on('output', function(data){
    console.log(data);
});
PS.on('end', function(code) {
    //optional callback 
    //Do Something 
});

我正在尝试从函数返回数据并将其分配给变量$ returneddata:

function getData()
{
var shell = require('node-powershell'); 
PS = new shell('echo "node-powershell is awesome"', {debugMsg: false});
PS.on('output', function(data){
    return data;
});
PS.on('end', function(code) {

});

}

var $returneddata = getData();

但它没有指定它。

1 个答案:

答案 0 :(得分:2)

您没有看到数据,因为您的return语句将其返回给错误的调用者:) <system.webServer> <security> <requestFiltering> <requestLimits maxAllowedContentLength="1073741824" /> </requestFiltering> </security> </system.webServer> 正在为事件注册回调函数。引发事件时,事件发射器将调用提供的函数。因此,此回调返回的值实际上是返回给事件发射器,而不关心您的返回值,而不是PS.on('output' ...的调用者。

要解决此问题,您应该提供自己的回调,请尝试以下方法:

getData

顺便说一句,您可能不需要function getData(callback) { var shell = require('node-powershell'); PS = new shell('echo "node-powershell is awesome"', {debugMsg: false}); PS.on('output', function(data){ return callback(null, data); }); PS.on('end', function(code) { }); } getData(function onGetData(err, data) { // do stuff with the returned data here }); 参数,但错误优先回调是节点中的约定。如果模块支持,则应该添加err ...