$resolve block is executing before controller

I am new to AngularJS. I am trying to make an $http api call inside app config of angularjs .Below is the code for $http api call.

         .when('/programme/:programmename', {                          
          templateUrl:"programme/info.html" ,

          resolve: {
            execute: function(userAPI,$rootScope,$route){
                var url = $route.current.params.programmename;
                url = url.replace(/-/g, ' ') ;
                userAPI.getProgrammeid({programmename: url } , function(r){
                $rootScope.Programmeid= r.getprogrammeidbyname.programmeidbyname.programmeid }

                )}
                }

  })

As per Angularjs documentation resolve block executes before controller and template, however in my case controller is executing before resolve block
I tried out promises but I am getting stuck in it.
Is this because of $http api call which is (userAPI.getProgrammeid({programmename: url }.....) inside resolve block?.
I am a bit confused

please help me out this.

Read more here: Source link