El método stream.finished() se utiliza para recibir una alerta si una transmisión ya no se puede escribir o leer, o si experimentó un error o un evento de cierre que no está maduro.
Sintaxis:
stream.finished(stream, options, callback)
Parámetros: Este método acepta tres parámetros como se mencionó anteriormente y se describe a continuación:
- flujo: Este parámetro puede ser legible o escribible.
- opciones: Este es un objeto, que puede ser:
- Puede ser un error , es decir, si se establece en falso, entonces una llamada para emitir eventos (‘error’, err) no se considera finalizada y, de forma predeterminada, es verdadera.
- Puede ser legible , es decir, si se establece en falso, se llama a una función de devolución de llamada cuando finaliza la transmisión, pero la transmisión aún puede ser legible y, de forma predeterminada, es verdadero.
- Se puede escribir , es decir, cuando se establece en falso, se llama a una función de devolución de llamada cuando finaliza la transmisión; aún así, se puede escribir en la transmisión y, de forma predeterminada, es verdadero.
- devolución de llamada: una función de devolución de llamada que toma un argumento de error electivo.
Valor devuelto: Devuelve una función de limpieza que separa todos los oyentes registrados.
Los siguientes ejemplos ilustran el uso del método stream.finished() en Node.js:
Ejemplo 1:
javascript
// Node.js program to demonstrate the // stream.finished(stream[, options], // callback) method // Including fs module var fs = require('fs'); // Constructing finished from stream const { finished } = require('stream'); // Constructing promisify from // util const { promisify } = require('util'); // Defining finishedAsync method const finishedAsync = promisify(finished); // Constructing readable stream const readable = fs.createReadStream("input.text"); // Constructing writable stream var writable = fs.createWriteStream("output.text"); // Async function (async function run() { try{ // Calling pipe method readable.pipe(writable); await finishedAsync(readable); console.log("Readable is being consumed"); } // Shows error catch(err) { console.error(err); } })();
Producción:
Promise { <pending> } Readable is being consumed
Ejemplo 2:
javascript
// Node.js program to demonstrate the // stream.finished(stream[, options], // callback) method // Including fs module var fs = require('fs'); // Constructing finished from stream const { finished } = require('stream'); // Constructing promisify from // util const { promisify } = require('util'); // Defining finishedAsync method const finishedAsync = promisify(finished); // Constructing readable stream const readable = fs.createReadStream("input.text"); // Constructing writable stream var writable = fs.createWriteStream("output.text"); // Async function (async function run() { try{ // Calling pipe method readable.pipe(writable); await finishedAsync(readable); console.log("Readable is being consumed"); } // Shows error catch(err) { console.error(err); } })();
Salida: aquí, se produce un error al escribir el nombre del archivo, por lo que se devuelve un error en la salida.
Promise { <pending> } { [Error: ENOENT: no such file or directory, open 'input.text'] errno: -2, code: 'ENOENT', syscall: 'open', path: 'input.text' }
Referencia: https://nodejs.org/api/stream.html#stream_stream_finished_stream_options_callback
Publicación traducida automáticamente
Artículo escrito por nidhi1352singh y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA