Skip to content

Instantly share code, notes, and snippets.

@gimenete
Last active December 15, 2015 22:39
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gimenete/5335008 to your computer and use it in GitHub Desktop.
Save gimenete/5335008 to your computer and use it in GitHub Desktop.
Comparing Q.js and async.js
var Q = require('q')
var async = require('async')
function dumbQ(value) {
var deferred = Q.defer()
setTimeout(function() {
deferred.resolve(value)
}, 200)
return deferred.promise
}
function dumbA(value, callback) {
setTimeout(function() {
return callback(null, value)
}, 200)
}
function callOneFunctionUsingQ() {
dumbQ('a').then(function (a) {
console.log('a', a.valueOf())
})
}
function callOneFunctionUsingA() {
dumbA('a', function(err, a) {
console.log('a', a)
})
}
function multipleFunctionsUsingQ() {
var values = [dumbQ('a'), dumbQ('b')]
Q.allResolved(values).then(function (results) {
var c = results[0].valueOf() + results[1].valueOf()
console.log('c', c)
})
}
function multipleFunctionsUsingA() {
var values = ['a', 'b']
async.map(values, dumbA, function(err, results) {
var c = results[0] + results[1]
console.log('c', c)
})
}
// callOneFunctionUsingQ()
// callOneFunctionUsingA()
// multipleFunctionsUsingQ()
// multipleFunctionsUsingA()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment