Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript-从匿名函数参数返回值_Javascript_Node.js_Powershell - Fatal编程技术网

JavaScript-从匿名函数参数返回值

JavaScript-从匿名函数参数返回值,javascript,node.js,powershell,Javascript,Node.js,Powershell,我正在使用npm“powershell”包执行powershell命令并读取相关输出。我想编写一个返回标准命令输出的函数(这样我就可以调用函数并在断言中使用其返回值) const PowerShell=require(“PowerShell”); var myFunction=函数(命令){ 设ps=新PowerShell(命令); ps.on(“错误”,err=>{ 控制台错误(err); }); ps.on(“输出”,数据=>{ 控制台日志(数据); //返回数据{ 控制台错误(数据); }

我正在使用npm“powershell”包执行powershell命令并读取相关输出。我想编写一个返回标准命令输出的函数(这样我就可以调用函数并在断言中使用其返回值)

const PowerShell=require(“PowerShell”);
var myFunction=函数(命令){
设ps=新PowerShell(命令);
ps.on(“错误”,err=>{
控制台错误(err);
});
ps.on(“输出”,数据=>{
控制台日志(数据);
//返回数据{
控制台错误(数据);
});
ps.on(“结束”,代码=>{
控制台日志(“结束”);
});
};

我希望
myFunction
返回数据值(从标准输出)。但是,我不知道如何正确地执行。请您提供建议?

了解回调是如何工作的。函数的一个示例是

var myFunction = function (command, callback) {
    // code
    ps.on("output", data => {
        callback(data)
    });
    // code
};

myFunction('ls', function (data) {
    console.log('The callback data:', data);
});

太长了,读不下去了,在这个站点上的节点问题中,有一个“异步函数”返回值:TL;DR- >使用回调或一个可能的重复的<代码>约定< <代码> >您的函数或在<代码>回调<代码>中。有很多现有的资源来做这个。Skabbi,谢谢。它是有效的,但是,它不是完整的解决方案。uld希望myFunction返回一个值,这样我就可以在expect中使用它。我想将myFunction调用的结果分配给一个变量,然后在expect中使用这个变量。有可能吗?您可以对回调函数进行单元测试,如何执行取决于您使用的库。但是,您不能使用回调返回任何内容,因为由于它们是异步的,我不确定您想要做什么,但是您可以将“data”分配给另一个变量,或者您可以查看moduleSkabbi,谢谢。不幸的是,我仍然没有设法解决这个问题。我使用的是Jasmine framework。我只想编写以下表达式:expect(commandOutput)。toEqual('somevalue'))。将expect替换为console.log…不起作用。您能给我一些提示吗?我想说,教您如何对异步代码进行单元测试超出了原始问题的范围。最好创建一个新问题或阅读旧问题,例如。
var myFunction = function (command, callback) {
    // code
    ps.on("output", data => {
        callback(data)
    });
    // code
};

myFunction('ls', function (data) {
    console.log('The callback data:', data);
});