Могу ли я всегда полагаться на поток от stdout до конца в \ r \ n для каждого куска данных? - PullRequest
0 голосов
/ 29 апреля 2019

Я использую childprocess для запуска netstat -a -b -o

const { spawn } = require('child_process');
const child = spawn('netstat', ['-a','-b','-o']);
child.stdout.setEncoding('utf8');

И я обрабатываю это как поток

child
    .stdout
    .pipe(transformer());

Transformer в настоящее время не полностью реализован, так как я просто тестирую, но сейчас это примерно так:

const Transform = require('stream').Transform;

function xformer () {
    let count = 0;

    return new Transform({
        objectMode: true,
        transform: function(data, _, done) {
            if (data.slice(-2) !== "\r\n") {
                var breakk = true;
            }
            // this.push(something);
            done();
        }
    })
}

То, как я собираюсь обработать этот поток в функции преобразования, очень сильно зависит от того, могу ли я полагаться на все «данные», заканчивающиеся на «\ r \ n», или на один экземпляр data может фактически начинаться с середины строки, в которой был предыдущий экземпляр data.

На данный момент похоже, что он всегда заканчивается \r\n, так что это будет хорошо. Просто хотел подтвердить, прежде чем делать предположения

...