Выполнение команд параллельно - nodejs - PullRequest
0 голосов
/ 10 октября 2019

Мне нужно выполнить много команд одну за другой что-то вроде:

for(let i = 0; i < 1250; i++) { 
  spawn('cp', [`${myparam[i]}`, `${anotherParam[i]}`])
}

И, конечно, я получаю Error: spawn /bin/sh EAGAIN. Я чувствую, что это не очень хороший подход. Мой cmd должен содержать некоторую информацию об элементе из массива. Каков наилучший подход для этого? Google ничего не говорит о подобных ситуациях ...

Если быть точным: мне нужно проанализировать около 200 HTML-файлов с помощью усов. Я сделал это через CLI, как:

spawn('mustache', ['template.json', '${input}.html', '${output}.html'])

1 Ответ

0 голосов
/ 10 октября 2019

Вы можете использовать API усов вместе с graceful-fs.

Замените вашу команду на Mustache.render

const fs = require("graceful-fs");
const Mustache = require("mustache");

const viewFile = "./template.json";

const input = ["input.html"];
const output = ["output.html"];

fs.readFile(viewFile, "utf8", (err, viewJson) => {
    if (err) throw err;

    const view = JSON.parse(viewJson);

    for (let i = 0, len = input.length; i < len; i++) { 
        fs.readFile(input[i], "utf8", (readErr, template) => {
            if (readErr) throw readErr

            fs.writeFile(output[i], Mustache.render(template, view), writeErr => {
                if (writeErr) throw writeErr;
            });
        });
    }
});

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...