JavaScript-从匿名函数参数返回值
我正在使用npm“powershell”包执行powershell命令并读取相关输出。我想编写一个返回标准命令输出的函数(这样我就可以调用函数并在断言中使用其返回值)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(“输出”,数据=>{ 控制台日志(数据); //返回数据{ 控制台错误(数据); }
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);
});