Also, you probably don't want to be futzing around with the
`_readableState` property. It's private and internal. Normally you'd push
some data from an external data source (an in-memory array will suffice for
demonstration purposes) and that would be what's consumed in the "_read"
function.
On Monday, March 11, 2013 2:57:14 PM UTC-7, Michael Jackson wrote:
>
> I've been messing around with 0.10's Stream.Readable this morning trying
> to get a super simple example to work, but I can't get my subclass to emit
> any "readable" events. Here's the subclass I'm using:
>
> function Content(string, options) {
> Stream.Readable.call(this, options);
> this.push(string);
> }
>
> util.inherits(Content, Stream.Readable);
>
> Content.prototype._read = function (size) {
> // Ignore size argument and return the entire buffer, for now.
> var state = this._readableState;
> var chunk = Buffer.concat(state.buffer);
> state.buffer = [];
> return chunk;
> };
>
> All I'm trying to do is wrap a string with a Stream.Readable subclass and
> emit that string. My _read function ignores the size argument for the sake
> of simplicity.
>
> Here's my test case:
>
> var test = new Content('hello world');
> // console.log(test._readableState.buffer.map(function (o) { return
> o.toString() }))
>
> test.on('readable', function () {
> console.log('readable');
> console.log(test.read());
> });
>
> test.on('error', function (error) {
> console.log(error);
> });
>
> test.on('end', function () {
> console.log('end');
> });
>
> When I run this code, I don't get anything printed to the console. Not
> even if I try a test.read(0) afterwards to refresh the internal buffer.
>
> I know there's stuff in the internal buffer because when I run the line
> that's commented out it shows me that my string is there.
>
> What am I doing wrong? Thanks in advance.
>
> --
> Michael Jackson
> @mjackson
>
--
--
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
---
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 [email protected].
For more options, visit https://groups.google.com/groups/opt_out.