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:
// 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:
// 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