Node.js stream.Writable close Event
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
Please Login to comment...