To make the readable side emit "end", call `cb(null, null);` in the
_read callback function (which it seems like you're doing already).

On Sun, Dec 23, 2012 at 11:20 PM, Bradley Meck <[email protected]> wrote:
> I have a situation where I want a sub-stream (in same manner as a
> sub-string) of a ReadableStream to be treated as a different stream
> entirely.
>
> Currently I have the following:
>
> ```
> //
> // Create a stream that consumes a future part an existing stream
> //
>
> var ReadableStream = require('readable-stream');
> function subStream(origin, length, pad) {
>    var stream = new ReadableStream({allowHalfOpen: false});
>    stream._read = function (size, cb) {
>       if (!length) {
>          stream._readableState.ended = true;
>          cb(null, null);
>          return;
>       }
>       var data = origin.read(Math.min(size, length));
>       if (data) {
>          length -= data.length;
>       }
>       cb(null, data);
>    }
>    return stream;
> }
>
> exports.subStream = subStream;
> ```
>
> but am unable to determine how to end it properly after reading some docs in
> readable-stream and in the code I am still confused as to how to tell _read
> that the stream is done without forcing extra read()s to be done by the user
> when they would have no reason to do so. Any help in understanding _read's
> ending system would be greatly appreciated.
>
> --
> 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 [email protected]
> To unsubscribe from this group, send email to
> [email protected]
> For more options, visit this group at
> http://groups.google.com/group/nodejs?hl=en?hl=en

-- 
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 [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en

Reply via email to