Edit: Bonne nouvelle! À partir de Node.js 8.0.0 readable.destroyest officiellement disponible: https://nodejs.org/api/stream.html#stream_readable_destroy_error
ReadStream.destroy
Vous pouvez appeler la fonction ReadStream.destroy à tout moment.
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');
});
La fonction publique ReadStream.destroyn'est pas documentée (Node.js v0.12.2) mais vous pouvez consulter le code source sur GitHub ( validation du 5 octobre 2012 ).
La destroyfonction marque en interne l' ReadStreaminstance comme détruite et appelle la closefonction pour libérer le fichier.
Vous pouvez écouter l' événement de fermeture pour savoir exactement quand le fichier est fermé. L' événement de fin ne se déclenchera que si les données sont complètement consommées.
Notez que les destroy(et les close) fonctions sont spécifiques à fs.ReadStream . Il n'y a pas de partie de l ' "interface" stream.readable générique .
fsmodule.closen'existe pas enStream.Readable.