> > +1 for just using the `once` module and being done with it. Measure > everything, and worry about the side effects when you see them. If you're > already into a "huge project", this is (as always, in my opinion) the most > pragmatic option.
Not to be confrontational (but here I go :)), but I have to strongly disagree with this statement. If a callback is being invoked multiple times when it clearly shouldn't be, there is a very real bug in the system that should not be ignored. Simply using one of these `.once()` utilities is the callback equivalent of: try { doSomething(); } catch (err) { /* who cares? */ } It makes the immediate problem go away, but at the cost of masking an actual bug. Even if the immediate side effects aren't significant, ignoring multiple callback invocations puts the system at future risk as the code base evolves. On Thursday, October 3, 2013 4:30:36 PM UTC-4, Michael Schoonmaker wrote: > > +1 for just using the `once` module and being done with it. Measure > everything, and worry about the side effects when you see them. If you're > already into a "huge project", this is (as always, in my opinion) the most > pragmatic option. > > > On Thu, Oct 3, 2013 at 11:39 AM, Alexey Petrushin > <alexey.p...@gmail.com<javascript:> > > wrote: > >> var _ = require(underscore) >> >> someFn(_(cb).once()) >> >> Also, you can use some metaprogramming wrap third party functions directly >> >> ensureCallbackCalledOnce = function(fn){extract callback from args and >> wrap it} >> someFn = ensureCallbackCalledOnce someFn >> someFn(cb) >> >> >> On Tuesday, October 1, 2013 9:17:11 AM UTC+4, jeevan kk wrote: >>> >>> I am using different 3rd party modules in my project. I have seen, in >>> some odd situations the 3rd party module which I am using is calling the >>> callback multiple times. >>> >>> Is there any general approach which I can follow so avoid such >>> situations. >>> >> -- >> -- >> 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 nod...@googlegroups.com<javascript:> >> To unsubscribe from this group, send email to >> nodejs+un...@googlegroups.com <javascript:> >> 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 nodejs+un...@googlegroups.com <javascript:>. >> For more options, visit https://groups.google.com/groups/opt_out. >> > > -- -- 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 nodejs@googlegroups.com To unsubscribe from this group, send email to nodejs+unsubscr...@googlegroups.com 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 nodejs+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.