I mean, when I'm reading a program, and I see `while(true)` I feel
like I'm seeing the future, because I know it'll be a bug one day.

On Fri, Mar 29, 2013 at 6:39 PM, Mark Volkmann
<r.mark.volkm...@gmail.com> wrote:
> I understand that you don't prefer the style of using a while (true) loop,
> but why do say it can be an "outright bug". Do you mean that something
> unexpected might happen?
>
> Lots of programmers object to assignment statements in conditions.
>
>
> On Fri, Mar 29, 2013 at 6:56 PM, Isaac Schlueter <i...@izs.me> wrote:
>>
>> 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.
>>
>>
>
>
>
> --
> 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.


Reply via email to