The type of data being pushed into the WriteableStream sink to be consumed
Is true
after writable.destroy()
has been called.
Is true
if it is safe to call writable.write()
, which means
the stream has not been destroyed, errored or ended.
Number of times writable.uncork()
needs to be
called in order to fully uncork the stream.
Is true
after writable.end()
has been called. This property
does not indicate whether the data has been flushed, for this use writable.writableFinished
instead.
Is set to true
immediately before the 'finish'
event is emitted.
Return the value of highWaterMark
passed when creating this Writable
.
This property contains the number of bytes (or objects) in the queue
ready to be written. The value provides introspection data regarding
the status of the highWaterMark
.
Getter for the property objectMode
of a given Writable
stream.
Internal write method for stream buffer. Don't use.
The object to push into the stream
Not needed due to object mode
Will call callback if there's an error
Event emitter The defined events on documents including:
The writable.cork()
method forces all written data to be buffered in memory.
The buffered data will be flushed when either the uncork or end methods are called.
The primary intent of writable.cork()
is to accommodate a situation in which
several small chunks are written to the stream in rapid succession. Instead of
immediately forwarding them to the underlying destination, writable.cork()
buffers all the chunks until writable.uncork()
is called, which will pass them
all to writable._writev()
, if present. This prevents a head-of-line blocking
situation where data is being buffered while waiting for the first small chunk
to be processed. However, use of writable.cork()
without implementingwritable._writev()
may have an adverse effect on throughput.
See also: writable.uncork()
, writable._writev()
.
Destroy the stream. Optionally emit an 'error'
event, and emit a 'close'
event (unless emitClose
is set to false
). After this call, the writable
stream has ended and subsequent calls to write()
or end()
will result in
an ERR_STREAM_DESTROYED
error.
This is a destructive and immediate way to destroy a stream. Previous calls towrite()
may not have drained, and may trigger an ERR_STREAM_DESTROYED
error.
Use end()
instead of destroy if data should flush before close, or wait for
the 'drain'
event before destroying the stream.
Once destroy()
has been called any further calls will be a no-op and no
further errors except from _destroy()
may be emitted as 'error'
.
Implementors should not override this method,
but instead implement writable._destroy()
.
Optional, an error to emit with 'error'
event.
Call this to end the stream and a callback is called when the stream is flushed, meaning everything has finished clearing out of the pipe.
The function to call when the pipe has been flushed
This allows a developer to write one final chunk to the stream and then immediately close the pipe, causing the pipe to flush with this last event in it, meaning everything has finished traveling through and out the pipe.
The object to push into the stream
The function to call when the pipe has been flushed
This allows a developer to write one final chunk to the stream and then immediately close the pipe, causing the pipe to flush with this last event in it, meaning everything has finished traveling through and out the pipe.
The object to push into the stream
Not needed due to object mode of stream
The function to call when the pipe has been flushed
Returns an array listing the events for which the emitter has registered
listeners. The values in the array are strings or Symbol
s.
const EventEmitter = require('events');
const myEE = new EventEmitter();
myEE.on('foo', () => {});
myEE.on('bar', () => {});
const sym = Symbol('symbol');
myEE.on(sym, () => {});
console.log(myEE.eventNames());
// Prints: [ 'foo', 'bar', Symbol(symbol) ]
Returns the current max listener value for the EventEmitter
which is either
set by emitter.setMaxListeners(n)
or defaults to {@link defaultMaxListeners}.
Returns the number of listeners listening to the event named eventName
.
The name of the event being listened for
Returns a copy of the array of listeners for the event named eventName
.
server.on('connection', (stream) => {
console.log('someone connected!');
});
console.log(util.inspect(server.listeners('connection')));
// Prints: [ [Function] ]
Alias for emitter.removeListener()
.
Returns a copy of the array of listeners for the event named eventName
,
including any wrappers (such as those created by .once()
).
const emitter = new EventEmitter();
emitter.once('log', () => console.log('log once'));
// Returns a new Array with a function `onceWrapper` which has a property
// `listener` which contains the original listener bound above
const listeners = emitter.rawListeners('log');
const logFnWrapper = listeners[0];
// Logs "log once" to the console and does not unbind the `once` event
logFnWrapper.listener();
// Logs "log once" to the console and removes the listener
logFnWrapper();
emitter.on('log', () => console.log('log persistently'));
// Will return a new Array with a single function bound by `.on()` above
const newListeners = emitter.rawListeners('log');
// Logs "log persistently" twice
newListeners[0]();
emitter.emit('log');
Removes all listeners, or those of the specified eventName
.
It is bad practice to remove listeners added elsewhere in the code,
particularly when the EventEmitter
instance was created by some other
component or module (e.g. sockets or file streams).
Returns a reference to the EventEmitter
, so that calls can be chained.
The writable.setDefaultEncoding()
method sets the default encoding
for a Writable
stream.
The new default encoding
By default EventEmitter
s will print a warning if more than 10
listeners are
added for a particular event. This is a useful default that helps finding
memory leaks. The emitter.setMaxListeners()
method allows the limit to be
modified for this specific EventEmitter
instance. The value can be set toInfinity
(or 0
) to indicate an unlimited number of listeners.
Returns a reference to the EventEmitter
, so that calls can be chained.
The writable.uncork()
method flushes all data buffered since cork was called.
When using writable.cork()
and writable.uncork()
to manage the buffering
of writes to a stream, it is recommended that calls to writable.uncork()
be
deferred using process.nextTick()
. Doing so allows batching of allwritable.write()
calls that occur within a given Node.js event loop phase.
stream.cork();
stream.write('some ');
stream.write('data ');
process.nextTick(() => stream.uncork());
If the writable.cork()
method is called multiple times on a stream, the
same number of calls to writable.uncork()
must be called to flush the buffered
data.
stream.cork();
stream.write('some ');
stream.cork();
stream.write('data ');
process.nextTick(() => {
stream.uncork();
// The data will not be flushed until uncork() is called a second time.
stream.uncork();
});
See also: writable.cork()
.
Writes data to the stream.
The object to push into the stream
Will call callback if there's an error
true if more events can be written and false if you need to back off sending events
Writes data to the stream.
The object to push into the stream
Not needed due to object mode of stream
Optional for RStreams, will call callback if there's an error.
true if more events can be written and false if you need to back off sending events
Generated using TypeDoc
A
WriteableStream
consume events as the last step of the pipeline, ending the pipe. It is an RStreams-specific wrapper interface that inherits from the Node library's fundamentWritable
stream interface, the most abstract sink pipeline step definition in Node. You will see this type in various type signatures. For example, the last pipeline step in aStreamUtil.pipe
is always aWriteableStream
, since the pipe needs a sink or nothing will flow in the pipe (sinks pull from previous pipe steps, causing flow in the pipe).