Node.js PowerShell的async.parallel?

Node.js PowerShell的async.parallel?,node.js,powershell,asynchronous,Node.js,Powershell,Asynchronous,在node.js中,我已经习惯了使用async.parallel发送几个作业,然后在回调中将它们返回到一个漂亮的results[]数组中。在PowerShell中没有这样做的方法,是吗 我发现的最接近的方法是在循环中使用Start Job启动一系列进程;但是我必须使用Receive Job来获得所有结果 在循环之后运行Job Wait,然后运行@results=Receive All Jobs或类似的操作是不可能的。默认情况下,等待Job等待所有作业。所以你可以做: $results = Get

在node.js中,我已经习惯了使用async.parallel发送几个作业,然后在回调中将它们返回到一个漂亮的
results[]
数组中。在PowerShell中没有这样做的方法,是吗

我发现的最接近的方法是在循环中使用
Start Job
启动一系列进程;但是我必须使用
Receive Job
来获得所有结果


在循环之后运行
Job Wait
,然后运行
@results=Receive All Jobs
或类似的操作是不可能的。默认情况下,等待Job等待所有作业。所以你可以做:

$results = Get-Job | Wait-Job | Receive-Job

我是不是误解了你的需要?

看起来是这样……但当我运行这个时,它真的很慢……它真的并行运行吗?在节点中它真的移动…@leeand00它很慢!正如您所观察到的,它正在为每个任务启动一个新的流程。除非至少有相当一部分任务需要几秒钟或更长时间,否则使用作业是不值得的。如果您想要性能更好但像乔布斯一样工作的产品,请查看PowerShell MVP Boe Prox.@leeand00 yeah。。您必须真正权衡并行性、性能、易部署性和易实现性的重要性。PoshRSJob中的所有功能都使用本机运行空间,因此如果您自己实现运行空间,则不需要该模块,但这是一个难题,因此该模块非常棒。可以想象的是,您还可以将模块嵌入到脚本中(我不记得了,请检查其许可方式),或者只包含脚本附近的文件,并使用完整路径导入模块。不需要正式的“安装”。