Evento de finalización de flujo de escritura de Node.js

El evento ‘finish’ en un Writable Stream se emite después de la llamada del método writable.end() cuando todos los datos se descargan en el sistema oculto.

Sintaxis:

 Event: 'finish'

Valor de retorno: si el método writable.end() se llama antes, este evento se emite; de ​​lo contrario, no se emite.

Los siguientes ejemplos ilustran el uso del evento ‘finalizar’ en Node.js:

Ejemplo 1:

// Node.js program to demonstrate the     
// finish event  
  
// Including stream module
const stream = require('stream');
  
// Creating a stream and creating 
// a write function
const writable = new stream.Writable({
  
  // Write function with its 
  // parameters
  write: function(chunk, encoding, next) {
  
    // Converting the chunk of
    // data to string
    console.log(chunk.toString());
    next();
  }
});
  
// Writing data
writable.write('hi');
  
// Calling end function
writable.end();
  
// Emitting finish event
writable.on('finish', function() {
   console.log("Write is completed.");
});
  
// Displays that the program 
// is ended
console.log("program is ended.");

Producción:

hi
program is ended.
Write is completed.

En el ejemplo anterior, se llama al método writable.end() antes del evento de finalización, por lo que se emite.

Ejemplo 2:

// Node.js program to demonstrate the     
// finish event  
  
// Including stream module
const stream = require('stream');
  
// Creating a stream and creating 
// a write function
const writable = new stream.Writable({
  
  // Write function with its 
  // parameters
  write: function(chunk, encoding, next) {
  
    // Converting the chunk of
    // data to string
    console.log(chunk.toString());
    next();
  }
});
  
// Writing data
writable.write('hi');
  
// Emitting finish event
writable.on('finish', function() {
   console.log("Write is completed.");
});
  
// Displays that the program 
// is ended
console.log("program is ended.");

Producción:

hi
program is ended.

Entonces, aquí no se llama a la función writable.end(), por lo que el evento de finalización no se ejecuta.

Referencia: https://nodejs.org/api/stream.html#stream_event_finish

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 *