title: Resolve multiple promises in route's resolve before initializing controller
body: <p>I have 2 http calls needed to be reslove before initializing my controller, currenly using Angular UI router and I have resolve map under $stateProvider.state('stateName', {stateObject}) my stateObject as bellow</p>
  
  <pre><code>    $stateProvider.state('stateName', {
          url  : '/myURL',
          params: {
                   data1: undefined,
                   data2 : undefined
              },
          resolve: {
              dataTobeResolve : function($stateParams,$q) {
  
                  var deferred = $q.defer();
                  var deferredObj = {};
                  deferredObj.d1 = $q.defer();
                  deferredObj.d2 = $q.defer();
  
                  var result = {
                      data1: {},
                      data2: {}
                  }
  
                  if(angular.isDefined($stateParams.data1)) {
                      result.data1 = $stateParams.data1;
                      deferredObj.d1.resolve();
                  }
                  else {
                      httpCall().then(function(response) {
                          AsyncMethodCall(response.data).then(function(resolvedData) {
                              result.data1 = resolvedData;
                              deferredObj.d1.resolve();       
                          });
                      });
                  }
  
                  if(angular.isDefined($stateParams.data2)) {
                      result.data2 = $stateParams.data2;
                      deferredObj.d2.resolve();
                  }
                  else {
                      AsyncMethodCall().then(function(resolvedData) {
                          result.data2 = resolvedData;
                          deferredObj.d2.resolve();       
                      });
                  }
  
                  $q.all(deferredObj).then(function() {
                      deferred.resolve(result);
                  });
                  return deferred.promise;
              }
          }
      });
  </code></pre>
  
  <p>how ever despite of deferredObj.d1 being resolve controll goes to then(function(){}) of $q.all(deferredObj) which is unexpected behaviour and I belive that all of the promise maps of deferredObj should be resolve before this line get executed, my controller get initialize despite of one of the promises being resolved</p>