title: Why $state.go doesn't work when destination state or it's parent resolves with promise
body: <p>I tried to load some data on parent state with resolve and to redirect user to default state when the app runs like so:</p>
  
  <pre><code>app.config(['$stateProvider', '$urlRouterProvider', function($stateProvider, $urlRouterProvider) {
  
    $stateProvider.state('home', {
      url: '/',
      template: '&lt;div&gt;&lt;a ui-sref="home"&gt;Start App&lt;/a&gt; &lt;a ui-sref="home.main"&gt;Home&lt;/a&gt; &lt;a ui-sref="home.other"&gt;Other state&lt;/a&gt;&lt;div ui-view&gt;Loading...&lt;/div&gt;&lt;/div&gt;',
      resolve: {
        user: ['$timeout', '$q', 
          function($timeout, $q) {
            var deferred = $q.defer();
            var promise = deferred.promise;
            var resolvedVal = promise.then(function() {
              console.log('$timeout executed');
              return {Id: 12, email: 'some@email.com', name: 'some name'};
            }, function() {
              console.log('Error happend');
            });
            $timeout(function() {
              deferred.resolve();
            }, 2000);
            return resolvedVal;
          }]
        //user: function() {return {id: 222, name: 'testname', email: 'test@em.ail'}; }
      },
      controller: ['$scope', 'user', function($scope, user) {
        $scope.user = user;
      }]
    });
  
    $stateProvider.state('home.other', {
      url: 'other',
      template: '&lt;div&gt;Your name is {{user.name}}, and email is {{user.email}}&lt;/div&gt;&lt;div&gt;This is other state of application, I try to make it open as default when application starts, by calling to $state.transitionTo() function in app.run() method&lt;/div&gt;',
      resolve: {
        someObj: function() {
          console.log('hello');
          return {someProp: 'someValue'};
        }  
      },
      controller: ['$scope', 'user', function($scope, user) {
        $scope.user = user;
      }]    
    });
  
  }]);  
  
  app.run(['$state', '$rootScope', function ($state, $rootScope) {
    $state.go('home.other');   
  }]);
  </code></pre>
  
  <p>And this does not change url in address bar and does not show template of home.other state (though the resolve function of home.state is executed and there is 'hello' in console).
  But when I comment promise function in resolve and instead put there simple function returning object application redirects as expected.</p>
  
  <p>Also instead of $timeout tried to do $http request which will actually be there, but no luck too.</p>