Edit: Boas notícias! A partir do Node.js 8.0.0 readable.destroy
está oficialmente disponível: https://nodejs.org/api/stream.html#stream_readable_destroy_error
ReadStream.destroy
Você pode chamar a função ReadStream.destroy a qualquer momento.
var fs = require('fs');
var readStream = fs.createReadStream('lines.txt');
readStream
.on('data', function (chunk) {
console.log(chunk);
readStream.destroy();
})
.on('end', function () {
// This may not been called since we are destroying the stream
// the first time 'data' event is received
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');
});
A função pública ReadStream.destroy
não está documentada (Node.js v0.12.2), mas você pode dar uma olhada no código-fonte no GitHub ( commit de 5 de outubro de 2012 ).
A destroy
função marca internamente a ReadStream
instância como destruída e chama a close
função para liberar o arquivo.
Você pode ouvir o evento close para saber exatamente quando o arquivo é fechado. O evento de término não será disparado a menos que os dados sejam totalmente consumidos.
Observe que as funções destroy
(e close
) são específicas para fs.ReadStream . Não faz parte da "interface" stream.readable genérica .
fs
módulo.close
não existe emStream.Readable
.