Since pipe is used in a lot of very hot areas, and is a royal pain to make changes to, I'd suggest just leaving it as-is for now. That pipe option object is kind of a wart in my opinion, I'd rather not make it bigger.
On Thu, Nov 29, 2012 at 9:50 AM, Jeff Barczewski <[email protected]> wrote: > @Isaac You bring up a good point about the duplex streams, I can see how > that could get hairy real quick. > > Your domains example is nice, so maybe that is the best way to handle error > in a single place. > > > For completeness and finishing the discussion around this, I can give one > last idea. Since pipe takes an options object, what if we added a new flag > like 'forwardError' which defaults to false, but if it is set true then > would propagate the error if there is a destination error handler? A user > would only want to do this on one directional streams. > > The resulting code would look like: > > rstream // input stream coming in > to http server > .pipe(digestStream, { forwardError: true }) // calculates the sha1 > .pipe(zlib.createGzip(), { forwardError: true }) // compress the data > .pipe(redisWStream, { forwardError: true }) // store it in db > .on('error', handleError) // will respond back to user with > appropriate message for error > .on('end', storeDigestMetaInDB); // record the digest in meta info in db > > > It is not nearly as clean with the extra option to each pipe. > > > Is this of any use, being able to selectively choose to forward for the > cases when you know you are using single direction streams? OR should we > just steer always everyone towards using domains (or individual error > handlers)? > > > I'm thinking that maybe the domains approach is better since it is more > foolproof, and you don't have to worry about whether duplex and you catch > all errors that are thrown (not just the emitted ones). > > > Any last thoughts before we lay this to rest? > > > Thanks to everyone for all your input! > > Jeff > -- 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
