Método Node.js stream.finished()

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: 
    1. 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.
    2. 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.
    3. 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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *