Edit: Bonne nouvelle! À partir de Node.js 8.0.0 readable.destroy
est 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.destroy
n'est pas documentée (Node.js v0.12.2) mais vous pouvez consulter le code source sur GitHub ( validation du 5 octobre 2012 ).
La destroy
fonction marque en interne l' ReadStream
instance comme détruite et appelle la close
fonction 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 .
fs
module.close
n'existe pas enStream.Readable
.