Обработка удаления файла, когда тот же файл изменяется или удаляется в WriteStream - PullRequest
2 голосов
/ 14 октября 2019

Когда вы открываете файл с помощью fs.createWriteStream, как вы справляетесь со случаем, когда базовый файл удаляется (например, третьей стороной, такой как logrotate)?

Ни одно из нормальных событий не кажетсяв этом случае.

Например:

const stream = fs.createWriteStream(filename, { flags: 'a' });

// None of these seem to fire
stream.on('close', () => console.log('CLOSED'));
stream.on('error', () => console.log('ERRORED'));
stream.on('finish', () => console.log('FINISHED'));

stream.write('foo');

// wait for flush...

fs.unlinkSync(filename);

// This doesn't work, but also doesn't error
stream.write('bar');

Рабочий пример: https://runkit.com/alecgibson/5da4545e76e836001a191ec0

Связанный:

Примечания:

  • Узел v12.10.0 добавил параметр emitClose, который предположительно исправляет это (?), Но яхотел бы сделать это в v10 (LTS)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...