Edit in JSFiddle

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);
 });

              
            
          
            
              
                

              
            
          
            
              

External resources loaded into this fiddle: