This isn't Node specific, but it's a really thorough article a professor pointed me to with JavaScript examples: https://raw.github.com/kriskowal/q/master/design/README.js
On Sunday, March 25, 2012 4:42:32 AM UTC-4, Andy wrote: > > *Note, I am not asking which tool is better, I am simply trying to > understand the differences. > > *I'm trying to wrap my head around promises in node. Right now I'm > writing all my code in callback soup. I am researching libraries and I > found async <https://github.com/caolan/async> (duh) but I also found the > horribly named but seemingly very popular q<https://github.com/kriskowal/q> > . > > What I am trying to figure out is if these libraries are mutually > exclusive. The async page mentions nothing about "promsies" and instead > talks about "flow control." But it seems like both libraries are sugar for > handling async function flow and callbacks. Do they both solve the same > problem, or can / should they be used together? > > Take this example: > > async.waterfall([ > function(callback){ > callback(null, 'one', 'two'); > }, > function(arg1, arg2, callback){ > callback(null, 'three'); > }, > function(arg1, callback){ > // arg1 now equals 'three' > callback(null, 'done'); > } > ], function (err, result) { > // result now equals 'done' > }); > > > vs: > > Q.call(step1).then(step2).then(step3).then(step4).then(function (value4) { > // Do something with value4}, function (error) { > // Handle any error from step1 through step4}).end(); > > > Both libraries are doing things in a series, and both are passing their > results to the next function. Is there really any difference between the > two results other than Q returning a promise that you can chain to with > .then? > > Is async really just a more versatile q? Or are there reasons to use one > and the other and they could be used together? > > And can you do parallel functions with promises? Or is that not what > they're used for? (And if not, should you use async + q, or is there too > much overlap?) > -- 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
