Modifica: buone notizie! A partire da Node.js 8.0.0 readable.destroy
è ufficialmente disponibile: https://nodejs.org/api/stream.html#stream_readable_destroy_error
ReadStream.destroy
Puoi chiamare la funzione ReadStream.destroy in qualsiasi 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');
});
La funzione pubblica ReadStream.destroy
non è documentata (Node.js v0.12.2) ma puoi dare un'occhiata al codice sorgente su GitHub ( commit del 5 ottobre 2012 ).
La destroy
funzione contrassegna internamente l' ReadStream
istanza come distrutta e chiama la close
funzione per rilasciare il file.
Puoi ascoltare l' evento di chiusura per sapere esattamente quando il file viene chiuso. L' evento finale non si attiverà a meno che i dati non siano completamente consumati.
Notare che le destroy
(e le close
) funzioni sono specifiche di fs.ReadStream . Non ci sono parti della generica "interfaccia" stream.readable .
fs
modulo.close
non esiste inStream.Readable
.