Я пытаюсь отслеживать прогресс канала из потока чтения для записи потока, чтобы я мог отобразить прогресс для пользователя.
Моя первоначальная идея состояла в том, чтобы отслеживать прогресс, когда событие data
испускается, как показано здесь:
const fs = require('fs');
let final = fs.createWriteStream('output');
fs.createReadStream('file')
.on('close', () => {
console.log('done');
})
.on('error', (err) => {
console.error(err);
})
.on('data', (data) => {
console.log("data");
/* Calculate progress */
})
.pipe(final);
Однако я понял, что только то, что оно было прочитано, не означает, что оно действительно было написано.Это можно увидеть, если удалить pipe
, так как событие data
все еще излучает.
Как можно отслеживать запись прогресса при передаче по трубопроводу с Node.js?