How do people stumble upon this kind of error?
On Thu, Aug 21, 2014 at 3:24 PM, Alexey Petrushin < [email protected]> wrote: > In my understanding the problem is not that it's not possible to prevent > callback from being called twice, with underscore it's as simple as `cb = > _(cb).once()` - but the problem is that it's cumbersome to do it everywhere. > > On Wednesday, 20 August 2014 00:18:30 UTC+4, Simon Doodkin wrote: >> >> Not long ago, T.J. complained in an article that he doesn't likes that in >> node.js sometimes callbacks are called more than once. >> i have a simple solution for this if you need it. also i can suggest that >> if you have callback problems you could use https://github.com/ >> mattinsler/longjohn module to trace the problem. id did it several times. >> >> cbguard: https://gist.github.com/shimondoodkin/a6762d8ab29ea497e245 >> >> // cbguard by Shimon Doodkin - license: public domain >> >> function cbguard(cb,printerr){ //kind of filter for callbacks. it prevents a >> callback to be called twice >> var cb1=cb; >> return function() { >> if(cb1) { var cb2=cb1; cb1=false; return cb2.apply(this,arguments); } >> else if(printerr)console.log(new Error('cb called twice').stack); >> } >> } >> >> // usage example: >> //function myfunction(cb) >> //{ >> // cb=cbguard(cb); // usage example >> // // or >> // // cb=cbguard(cb,true); // good when developing, it will protect and >> also tell you you have a problem, here a callback is called twice here. >> // >> // things that are based on event emitteres are usually have problems with >> multiple callbacks. >> >> >> -- > Job board: http://jobs.nodejs.org/ > New group rules: > https://gist.github.com/othiym23/9886289#file-moderation-policy-md > Old group rules: > 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 unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/nodejs/0bfddd86-2dfd-4e35-a3a4-72c323e739b7%40googlegroups.com > <https://groups.google.com/d/msgid/nodejs/0bfddd86-2dfd-4e35-a3a4-72c323e739b7%40googlegroups.com?utm_medium=email&utm_source=footer> > . > > For more options, visit https://groups.google.com/d/optout. > -- Job board: http://jobs.nodejs.org/ New group rules: https://gist.github.com/othiym23/9886289#file-moderation-policy-md Old group rules: 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 unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/nodejs/CACZE8Y6W8MsVQd3M1UMMBFFJ%2BuJjS_wC_b2FoCmmrTzsxsBBrQ%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
