All Readable stream implementations must provide an implementation of the readable._read() method to fetch data from the underlying resource.
All Readable stream implementations must provide an implementation of the readable._read() method to fetch data from the underlying resource.
When readable._read() is called, if data is available from the resource, the implementation should begin pushing that data into the read queue using the this.push(dataChunk) method. _read() should continue reading from the resource and pushing data until readable.push() returns false. Only when _read() is called again after it has stopped should it resume pushing additional data onto the queue.
the number of bytes to read asynchronously
All Readable stream implementations must provide an implementation of the readable._read() method to fetch data from the underlying resource.
All Readable stream implementations must provide an implementation of the readable._read() method to fetch data from the underlying resource.
When readable._read() is called, if data is available from the resource, the implementation should begin pushing that data into the read queue using the this.push(dataChunk) method. _read() should continue reading from the resource and pushing data until readable.push() returns false. Only when _read() is called again after it has stopped should it resume pushing additional data onto the queue.
Readable._read()
Alias for emitter.on(eventName, listener).
Alias for emitter.on(eventName, listener).
emitter.addListener(eventName, listener)
on()
Synchronously calls each of the listeners registered for the event named eventName, in the order they were registered, passing the supplied arguments to each.
Synchronously calls each of the listeners registered for the event named eventName, in the order they were registered, passing the supplied arguments to each.
Returns true if the event had listeners, false otherwise.
the event name
the event arguments
emitter.emit(name[, arg1][, arg2][, ...])
Returns the current max listener value for the EventEmitter which is either set by emitter.setMaxListeners(n) or defaults to EventEmitter.defaultMaxListeners.
Returns the current max listener value for the EventEmitter which is either set by emitter.setMaxListeners(n) or defaults to EventEmitter.defaultMaxListeners.
emitter.getMaxListeners()
setMaxListeners()
This method returns whether or not the readable has been explicitly paused by client code (using stream.pause() without a corresponding stream.resume()).
This method returns whether or not the readable has been explicitly paused by client code (using stream.pause() without a corresponding stream.resume()).
readable.isPaused()
Returns the number of listeners listening to the event named eventName.
Returns the number of listeners listening to the event named eventName.
emitter.listenerCount(eventName)
Returns a copy of the array of listeners for the event named eventName.
Returns a copy of the array of listeners for the event named eventName.
emitter.listeners(eventName)
Adds the listener function to the end of the listeners array for the event named eventName.
Adds the listener function to the end of the listeners array for the event named eventName. No checks are made to see if the listener has already been added. Multiple calls passing the same combination of eventName and listener will result in the listener being added, and called, multiple times.
Returns a reference to the EventEmitter so calls can be chained.
emitter.on(eventName, listener)
Adds a one time listener function for the event named eventName.
Adds a one time listener function for the event named eventName. This listener is invoked only the next time eventName is triggered, after which it is removed.
emitter.once(eventName, listener)
This method will cause a stream in flowing mode to stop emitting 'data' events, switching out of flowing mode.
This method will cause a stream in flowing mode to stop emitting 'data' events, switching out of flowing mode. Any data that becomes available will remain in the internal buffer.
readable.pause()
This method pulls all the data out of a readable stream, and writes it to the supplied destination, automatically managing the flow so that the destination is not overwhelmed by a fast readable stream.
This method pulls all the data out of a readable stream, and writes it to the supplied destination, automatically managing the flow so that the destination is not overwhelmed by a fast readable stream. Multiple destinations can be piped to safely.
readable.pipe(destination[, options])
When chunk is a Buffer or string, the chunk of data will be added to the internal queue for users of the stream to consume.
When chunk is a Buffer or string, the chunk of data will be added to the internal queue for users of the stream to consume. Passing chunk as null signals the end of the stream (EOF), after which no more data can be written.
When the Readable is operating in paused mode, the data added with readable.push() can be read out by calling the readable.read() method when the 'readable' event is emitted.
When the Readable is operating in flowing mode, the data added with readable.push() will be delivered by emitting a 'data' event.
the chunk of data to push into the read queue
true if additional chunks of data may continued to be pushed; false otherwise.
When chunk is a Buffer or string, the chunk of data will be added to the internal queue for users of the stream to consume.
When chunk is a Buffer or string, the chunk of data will be added to the internal queue for users of the stream to consume. Passing chunk as null signals the end of the stream (EOF), after which no more data can be written.
When the Readable is operating in paused mode, the data added with readable.push() can be read out by calling the readable.read() method when the 'readable' event is emitted.
When the Readable is operating in flowing mode, the data added with readable.push() will be delivered by emitting a 'data' event.
the chunk of data to push into the read queue
the encoding of String chunks. Must be a valid Buffer encoding, such as 'utf8' or 'ascii'
true if additional chunks of data may continued to be pushed; false otherwise.
The read() method pulls some data out of the internal buffer and returns it.
The read() method pulls some data out of the internal buffer and returns it. If there is no data available, then it will return null.
If you pass in a size argument, then it will return that many bytes. If size bytes are not available, then it will return null, unless we've ended, in which case it will return the data remaining in the buffer.
If you do not specify a size argument, then it will return all the data in the internal buffer.
This method should only be called in paused mode. In flowing mode, this method is called automatically until the internal buffer is drained.
readable.read([size])
Removes all listeners, or those of the specified eventName.
Removes all listeners, or those of the specified eventName.
Note that 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 calls can be chained.
emitter.removeAllListeners([eventName])
Removes all listeners, or those of the specified eventName.
Removes all listeners, or those of the specified eventName.
Note that 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 calls can be chained.
emitter.removeAllListeners([eventName])
Removes the specified listener from the listener array for the event named eventName.
Removes the specified listener from the listener array for the event named eventName. removeListener will remove, at most, one instance of a listener from the listener array. If any single listener has been added multiple times to the listener array for the specified eventName, then removeListener must be called multiple times to remove each instance.
Note that once an event has been emitted, all listeners attached to it at the time of emitting will be called in order. This implies that any removeListener() or removeAllListeners() calls after emitting and before the last listener finishes execution will not remove them from emit() in progress. Subsequent events will behave as expected.
emitter.removeListener(eventName, listener)
This method will cause the readable stream to resume emitting 'data' events.
This method will cause the readable stream to resume emitting 'data' events. This method will switch the stream into flowing mode. If you do not want to consume the data from a stream, but you do want to get to its 'end' event, you can call stream.resume() to open the flow of data.
readable.resume()
Call this function to cause the stream to return strings of the specified encoding instead of Buffer objects.
Call this function to cause the stream to return strings of the specified encoding instead of Buffer objects. For example, if you do readable.setEncoding('utf8'), then the output data will be interpreted as UTF-8 data, and returned as strings. If you do readable.setEncoding('hex'), then the data will be encoded in hexadecimal string format.
This properly handles multi-byte characters that would otherwise be potentially mangled if you simply pulled the Buffers directly and called buf.toString(encoding) on them. If you want to read the data as strings, always use this method.
Also you can disable any encoding at all with readable.setEncoding(null). This approach is very useful if you deal with binary data or with large multi-byte strings spread out over multiple chunks.
readable.setEncoding(encoding)
By default EventEmitters will print a warning if more than 10 listeners are added for a particular event.
By default EventEmitters 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. Obviously, not all events should be limited to just 10 listeners. The emitter.setMaxListeners() method allows the limit to be modified for this specific EventEmitter instance. The value can be set to Infinity (or 0) for to indicate an unlimited number of listeners.
Returns a reference to the EventEmitter so calls can be chained.
emitter.setMaxListeners(n)
This method will remove the hooks set up for a previous stream.pipe() call.
This method will remove the hooks set up for a previous stream.pipe() call.
If the destination is not specified, then all pipes are removed.
If the destination is specified, but no pipe is set up for it, then this is a no-op.
readable.unpipe([destination])
This is useful in certain cases where a stream is being consumed by a parser, which needs to "un-consume" some data that it has optimistically pulled out of the source, so that the stream can be passed on to some other party.
This is useful in certain cases where a stream is being consumed by a parser, which needs to "un-consume" some data that it has optimistically pulled out of the source, so that the stream can be passed on to some other party.
Note that stream.unshift(chunk) cannot be called after the 'end' event has been triggered; a runtime error will be raised.
If you find that you must often call stream.unshift(chunk) in your programs, consider implementing a Transform stream instead.
readable.unshift(chunk)
Versions of Node.js prior to v0.10 had streams that did not implement the entire Streams API as it is today.
Versions of Node.js prior to v0.10 had streams that did not implement the entire Streams API as it is today. (See Compatibility for more information.)
If you are using an older Node.js library that emits 'data' events and has a stream.pause() method that is advisory only, then you can use the wrap() method to create a Readable stream that uses the old stream as its data source.
You will very rarely ever need to call this function, but it exists as a convenience for interacting with old Node.js programs and libraries.
readable.wrap(stream)
The Readable stream interface is the abstraction for a source of data that you are reading from. In other words, data comes out of a Readable stream.
https://nodejs.org/api/stream.html#stream_readable_streams