Дождитесь завершения всех дочерних процессов, чтобы продолжить - PullRequest
0 голосов
/ 12 апреля 2019

Я хотел бы знать, возможно ли дождаться завершения всех дочерних процессов, созданных с использованием функции spawn, прежде чем продолжить выполнение.

У меня есть код, похожий на этот:


    const spawn = window.require('child_process').spawn;

    let processes = [];
    let thing = [];
    // paths.length = 2
    paths.forEach((path) => {
        const pythonProcess = spawn("public/savefile.py", ['-d', '-j', '-p', path, tempfile]);

        pythonProcess.on('exit', () => {
            fs.readFile(tempfile, 'utf8', (err, data) => {
                thing.push(...)
            });
        });

        processes.push(pythonProcess);
    });

    console.log(processes) // Here we have 2 child processes
    console.log(thing) // empty array.. the python processes didnt finish yet

    return thing // of course it doesn't work. I want to wait for all the processes  to have finished their callbacks to continue

Как вы можете догадаться, я хотел бы знать, как я могу запустить все сценарии Python одновременно и дождаться завершения всех из них, чтобы продолжить мой код js.

I 'm бегущий узел 10.15.3

Спасибо

1 Ответ

0 голосов
/ 12 апреля 2019

ForEach, чтобы вставить Promise в массив Promise и Promise.all ()

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