Node.js stream.Writable close Event

Last Updated : 12 Oct, 2021
The stream.Writable close Event is an inbuilt application programming interface of Stream module which is used to emit when the stream and any of its hidden resources (for example, a file descriptor) is being closed. This event implies that no further events will be emitted, plus no further computation will take place. Syntax:
Event: 'close'
Return Value: If the writable.destroy() method is being called or a file descriptor is being closed after this event then this event is emitted else it's not emitted. Below examples illustrate the use of stream.Writable close Event in Node.js: Example 1: javascript
// Node.js program to demonstrate the     
// close 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('GeeksforGeeks');

// Emitting close event
writable.on('close', () => {
    console.log("No further operations will be performed!");
});

// Calling destroy function
writable.destroy();

// Shows that the program ends
console.log("program is ended.");
Output:
GeeksforGeeks
program is ended.
No further operations will be performed!
In the above example, writable.destroy() method is called after the close event so it is emitted. Example 2: javascript
// Node.js program to demonstrate the     
// close 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('GeeksforGeeks');

// Emitting close event
writable.on('close', () => {
    console.log("No further operations will be performed!");
});

// Shows that the program ends
console.log("program is ended.");
Output:
GeeksforGeeks
program is ended.
So, here writable.destroy() function is not called so the close event is not executed. Reference:https://nodejs.org/api/stream.html#stream_event_close
Comment

Explore