我正在使用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();
但它没有指定它。
答案 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
...