Изменить: хорошие новости! Начиная с Node.js, версия 8.0.0 readable.destroy
официально доступна: https://nodejs.org/api/stream.html#stream_readable_destroy_error
ReadStream.destroy
Вы можете вызвать функцию ReadStream.destroy в любое время.
var fs = require('fs');
var readStream = fs.createReadStream('lines.txt');
readStream
.on('data', function (chunk) {
console.log(chunk);
readStream.destroy();
})
.on('end', function () {
console.log('All the data in the file has been read');
})
.on('close', function (err) {
console.log('Stream has been destroyed and file has been closed');
});
Публичная функция ReadStream.destroy
не задокументирована (Node.js v0.12.2), но вы можете ознакомиться с исходным кодом на GitHub ( 5 октября 2012 г., фиксация ).
destroy
Функция внутренне отметьте ReadStream
экземпляр как уничтоженные и вызывает close
функцию , чтобы освободить файл.
Вы можете прослушать событие закрытия, чтобы точно знать, когда файл закрыт. Событие окончания не будет срабатывать , если данные не будут полностью израсходованы.
Обратите внимание, что функции destroy
(и close
) относятся к fs.ReadStream . Это не часть общего "интерфейса" stream.readable .
fs
модуля.close
не существует вStream.Readable
.