Как заставить spawnSync и fs.readFile выполнить один за другим?

У меня есть сценарий python, который возвращает файл JSON качестве вывода, принимая FILE в качестве входного.

У меня есть 10 файлов, я использую spawnSync для цикла и внутри цикла. У меня есть fs.readFile для чтения JSON-файла, который исходит из скрипта python.

Но проблема в том, что spawnSync блокирует fs.readFile, пока не выполнит скрипты python со всеми 10 файлами. Поскольку и spawnSync и fs.readFile находятся внутри цикла , я хочу, чтобы fs.readFile читал JSON-файл, как только первый скрипт python выполняет и выводит файл JSON.

Но этого не происходит. spawnSync блокируется, и он продолжает следующий файл для выполнения скрипта python. fs.reafFile должен печатать данные, как только файл будет выполняться. помогите, вот мой фрагмент кода.

 var spawn = require('child_process').spawnSync; var fs = require('fs'); var filename = ['first.txt','second.txt','third.txt',....] for(var i=0;i<10;i++) { var myscript = spawn('python',['/pathToPython/myPython.py',filename[i]]); fs.readFile('/pathToPython/' + filename[i] + '.json','utf8',function(err,data){ if(err){ console.log(err); }else{ console.log(data); } }); } 

    Если вы полагаетесь использовать сторонний модуль, я рекомендую использовать async.eachSeries метод асинхронного модуля для решения этой проблемы

     var filename = ['first.txt','second.txt','third.txt',....] async.eachSeries(filename, function(item, next) { var myscript = spawn('python', ['/pathToPython/myPython.py', item]); fs.readFile('/pathToPython/' + item + '.json', 'utf8', function(err, data) { if (err) { console.log(err); } else { console.log(data); next(); } }); })