Commented on the gist, but for posterity: ----
I'd consider `while (true)` to be at least a red flag, if not an outright bug most of the time. This is somewhat clearer, imo: ```javascript var chunk; while (null !== (chunk = rs.read())) { doSomething(chunk); } ``` Of course if your goal is just to pull data out asap, you may as well use `rs.on('data', function(chunk) { ... })` which basically does exactly that. On Fri, Mar 29, 2013 at 1:57 PM, Mark Volkmann <r.mark.volkm...@gmail.com> wrote: > Thanks! So it sounds like this would be preferred. > > https://gist.github.com/anonymous/5273601 > > > On Fri, Mar 29, 2013 at 3:38 PM, Andrew Hart <hartandr...@gmail.com> wrote: >> >> 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. >> >> > > > > > -- > R. Mark Volkmann > Object Computing, Inc. > > -- > -- > 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. > > -- -- 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.