有一个问题,我在 Node.JS 上有代码,我想同时打开几个类似的文件(通过循环),当我尝试通过 execFile/spawn 执行此操作时,脚本运行,但没有任何结果发生。当你通过execFile/spawn打开一个循环、单个文件时,一切都正常,当通过资源管理器中双击打开多个文件时,也很正常。
我附上代码:
const spawn = require('child_process').spawn;
const fs = require('fs');
var files = fs.readdirSync('D:\\Downloads\\runBots\\');
var countFiles = 0;
var BotsProcess = new Array(10);
var startApplication = function(){
for (var i in files) countFiles++;
console.log("Bots in directory: " + countFiles);
for(var j in countFiles) {
BotsProcess[i] = spawn('D:\\Downloads\\runBots\\' + files[j], {shell : true});
}
}
startApplication();
最佳答案
问题出在 for 循环上。变量 countFiles 是一个数字,而不是一个可迭代对象。您可能想要
for (var j in files) {
...
}
另外,我忍不住指出:
要获取 countFiles,您可以简单地使用 files.length。
您还可以使用 for of 循环,它将值分配给 j 而不是索引,如下所示:
for(var j of files) {
BotsProcess[i] = spawn('D:\\Downloads\\runBots\\' + j, {shell : true});
}
关于javascript - 在 Node.JS 中打开多个进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53453773/