Я пишу скрипт nodejs для обработки (преобразования в PDF из различных форматов) большого количества файлов на регулярной основе.Сценарий считывает все файлы в папке, разбивает их на массивы одинакового размера и затем должен асинхронно запускать конвертер командной строки для каждого из массивов.Все работает отлично, за исключением узла, ожидающего возврата обещания, прежде чем продолжить цикл for.Код использует тестовую команду для копирования файлов вместо преобразования, потому что это проще для тестирования.Вместо того, чтобы запускать 5 одновременных задач копирования, он запускается одна за другой.Я использую массив обещаний, поэтому я могу вызвать Promises.all()
, когда все обещания возвращаются.Чего мне не хватает, что это не работает как надо?
let processCount = 5;
let promisesArray = [];
for (let processNo = 0; processNo < processCount; processNo++) {
promisesArray[processNo] = new Promise(function(resolve, reject) {
let fileList = splitArrays[processNo];
for (let file = 0; file < fileList.length; file++) {
let command = `Copy "${fileList[file][0]}" "${fileList[file][1]}"`;
execSync(command);
}
resolve(true);
});
}