Открытие нескольких процессов в Node.JS - PullRequest
0 голосов
/ 24 ноября 2018

Возник вопрос, у меня есть код на 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();

1 Ответ

0 голосов
/ 24 ноября 2018

Проблема в цикле for.Переменная countFiles - это число, а не итерация.Вы, вероятно, хотите

for (var j in files) {
    ...
}

Кроме того, я не могу не отметить:

Чтобы получить countFiles, вы можете просто использовать files.length.

Вы также можете использоватьвместо цикла for, который назначит значение j вместо индекса, например:

for(var j of files) {
    BotsProcess[i] = spawn('D:\\Downloads\\runBots\\' + j, {shell : true});
}
...