Looks a lot like an underscore mixin I use:

http://life.neophi.com/danielr/2012/04/underscore_mixin_for_error_han.html

In general though domains handle this better.

-- Daniel R. <[email protected]> [http://danielr.neophi.com/]


On Thu, Jan 10, 2013 at 5:26 AM, Stuart P. Bentley <[email protected]>wrote:

> Hey guys, new(ish) to Node, first time posting. I made an npm account
> shortly after I started for programming, but I haven't written anything
> that really called for a reusable npm package until now.
>
> So, the code I'm writing doesn't use any flow-control/promise-chain
> libraries like seq or step or q or first or async or queue-async (although
> I have used the last one a little). However, it still has a few callbacks,
> and it rarely (if ever) cares about what to do if there's an error (other
> than panic, of course).
>
> Anyway, to avoid endless "if(err){console.error(err)} else {" typing, I
> found myself copy-pasting something like this at the top of all my scripts
> to wrap all my callbacks in:
>
>     function errorHandlingCb(errCb){
>       return function onSuccess(successCb){
>         return function(err) {
>           if (err) {
>             errCb(err);
>           } else {
>             successCb.apply(this,Array.**prototype.slice.call(**
> arguments,1));
>           }
>       }
>     }
>
> (or some variant on the onSuccess function with console.error or "throw
> err")
>
> Eventually I started writing something with its functionality spread
> across files, got tired of having the same 7-9 lines in multiple files in
> one project (let alone across multiple projects, and decided I'd turn it
> into a module:
>
> https://github.com/stuartpb/**catcher/blob/master/index.js<https://github.com/stuartpb/catcher/blob/master/index.js>
>
> I reset my npm password (which I'd unsurprisingly forgotten) and published
> it:
>
> https://npmjs.org/package/**catcher <https://npmjs.org/package/catcher>
>
> What do you think? I don't know if I'm replicating some existing thing, or
> if I've overlooked something, or made some assumption I shouldn't.
>
> Here are some ideas I have for 0.2:
>
> - "errorize" any non-Error strings / objects (to amerliorate the problems
> detailed in http://www.devthought.com/**2011/12/22/a-string-is-not-an-**
> error/ <http://www.devthought.com/2011/12/22/a-string-is-not-an-error/>)
> by replacing line 5 with this:
>
>         if (err instanceof Error) ecb(err);
>         else ecb(new Error(err));
>
> - dropp throwNewErr (in light of the above change)
> - New functions oriented toward different combinations of wrapping the
> method and error handler for calling the method with the success callback,
> rather than just wrapping the error handler, then the success callback,
> then using that in the method
>
> --
> Job Board: http://jobs.nodejs.org/
> Posting guidelines: https://github.com/joyent/**node/wiki/Mailing-List-**
> 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
> nodejs+unsubscribe@**googlegroups.com<nodejs%[email protected]>
> For more options, visit this group at
> http://groups.google.com/**group/nodejs?hl=en?hl=en<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