On Friday, March 29, 2013 1:55:36 PM UTC-6, Mark Volkmann wrote: > Is this the recommended way to read from a Readable stream in 0.10? > > I can only share what I've discovered.
> Can I assume that I will always get a 'readable" event when the stream is > ready to be read? > > Can I assume I will get a new 'readable' event after every call to rs.read > unless the end of the stream was reached? > > http://nodejs.org/api/stream.html#stream_readable_read_size_1 If there is no data to consume, or if there are fewer bytes in the internal buffer than the size argument, thennull is returned, and a future 'readable' event will be emitted when more is available. I don't think the documentation allows you to assume a new readable event if read did not return null. That's consistent with my experiments as well. > Is it better to do something like this inside the 'readable' callback to > continue calling read until it returns null? > > while (true) { > var chunk = rs.read(); > if (!chunk) break; > // do something with chunk > } > > I think you need to specifically check for null. Otherwise, the stream might return the empty string or, if it is an "objectMode" stream (useful, but only mentioned in passing here: http://nodejs.org/api/stream.html#stream_new_stream_readable_options reading the source suggests objectMode works fine for writable, transform, and duplex streams as well.), some other falsey value. Andrew Hart -- -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups "nodejs" group. To post to this group, send email to nodejs@googlegroups.com To unsubscribe from this group, send email to nodejs+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en --- You received this message because you are subscribed to the Google Groups "nodejs" group. To unsubscribe from this group and stop receiving emails from it, send an email to nodejs+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.