Как следить за процессом работы потока в %?

lollyrock.com/articles/nodejs-encryption
Здесь описано, как шифровать содержимое из потока, возможно, ссылка не по теме, но как отследить состояние потока функции pipe именно в %?
  • Вопрос задан
  • 898 просмотров
Решения вопроса 1
@Aves
Можно сделать что-нибудь в таком роде:
const stream = require('stream');
const fs = require('fs');

class PercentWatcher extends stream.Duplex {
  constructor(fd) {
    super();
    this.size = fs.fstatSync(fd).size;
    this.handled = 0;
  }
  _read() {}
  _write(chunk, encoding, callback) {
    this.push(chunk);
    this.handled += chunk.length;
    console.log(`\n\n${Math.round(this.handled / this.size * 100)}%\n\n`);
    callback();
  }
}

const fd = fs.openSync('file.txt', 'r');

fs.createReadStream(null, {fd}).pipe(new PercentWatcher(fd)).pipe(process.stdout);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы