function getUser (id) { return Q.delay(1000) .thenResolve({id: id, name: 'User ' + id}); } function getTwitterProfile (twitterHandler) { return Q.delay(1000) .thenResolve({handler: twitterHandler}); } function mergeProfiles (user, twitter) { user.handler = twitter.handler; return user; } Q.all([getUser(123), getTwitterProfile('jforma')]) .spread(mergeProfiles) .then(function (prof) { alert(prof.name + ' known as ' + prof.handler); });