Функция Promise не разрешается после первого вызова - PullRequest
0 голосов
/ 05 октября 2018

У меня есть функция, которая сортирует текстовые файлы.У меня есть несколько файлов, которые мне нужно отсортировать по одному.Я соединяю каждый звонок вместе.Первый вызов функции сортировки работает нормально.Как только файл отсортирован, поток закрывается и вызывается метод execute.Другие файлы вызывают функцию сортировки, но они никогда не разрешаются.Я не знаю, заключается ли проблема в функции сортировки или в том, как я вызываю.

Функция сортировки ...

var spawn = require('child_process').spawn;
var fs = require('fs');

var sortFile = function(dir, file, type) {
    var sortProcess = spawn('sort', [file]);
    sortProcess.stdout.setEncoding('utf8');

    return new Promise(function(resolve, reject) {
        var fileStream = fs.createWriteStream(dir + '/' + type + '_sorted.txt', { flags: 'a' });

        sortProcess.stdout.pipe(fileStream);

        sortProcess.stderr.on('data', function (data) {
            reject(err);
        });
        sortProcess.on('close', function (code) {
            resolve();
        });
    });
}

module.exports.sortFile = sortFile;

Я так называю.

fileSort.sortFile(dir, students_File, 'student')
                .then(function() {
                    students_stream = fs.createReadStream(dir + '/student_sorted.txt');
                    fileSort.sortFile(dir, schools_File, 'school')
                })
                .then(function() {
                    schools_Stream = fs.createReadStream(dir + '/school_sorted.txt');
                    fileSort.sortFile(dir, staff_File, 'staff');
                })
                .then(function() {
                    staff_Stream = fs.createReadStream(dir + '/staff_sorted.txt');
                    fileSort.sortFile(dir, classes_File, 'class');
                })
                .then(function() {
                    classes_Stream = fs.createReadStream(dir + '/class_sorted.txt');
                    fileSort.sortFile(dir, courseCatalog_File, 'course');
                })
                .then(function() {
                    courseCatalog_Stream = fs.createReadStream(dir + '/course_sorted.txt');
                    fileSort.sortFile(dir, secondaryTeachers_File, 'secTeachers');
                })
                .then(function() {
                    secondaryTeachers_Stream = fs.createReadStream(dir + '/secTeachers_sorted.txt');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...