The potential issue is if the person consuming your API expects the callback to always be async:
// kick off the async process as early as possible doAsync( cb ); // do some slightly high cost prep work before the callback is invoked prepareStateForCallbackWhileWaiting(); Doing the prep work after the async call allows you to reduce the amount of time needed between the start of this tick and the tick when the callback is actually invoked. Interestingly, the reason some people don't like forcing async is for performance gains when the operation can be sync. You're going to get lots of arguments on both sides. On Tue, Aug 20, 2013 at 1:47 PM, Bryan Donovan <[email protected]> wrote: > I have been writing node.js client code for a couple of years now, and > have authored a couple open source libraries, but somehow I missed the memo > telling me that I'm supposed to wrap 'synchrounous' callbacks in > process.nextTick(). I kind-of understand why that is a best-practice, but > what I don't understand is what the drawback is if you don't do it. > > For example, I write code like this all the time, and have never had a > single problem with it: > > function getSomething(args, cb) { > if (!args) { return cb(new Error('args required')); } > if (!args.id) { return cb(new Error('args.id required')); } > > SomeDatabase.get({id: args.id}, cb); > } > > What are the potential issues with not wrapping those arg checks in > process.nextTick()? > > > Thanks, > > Bryan > > -- > -- > 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. > -- -- 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.
