I am new to AngularJS. How can I return the response of "response.data" as a typical function?
Because $http generates a promise, when the function finishes it doesn't return the server response.
In my controller I have:
this.message2 = function() {                 
    $http({
        url : 'dataset_of_model',
        method : "POST",
        data : {
            'experiment' : 'rcp85',
            'model' : 'HadGEM2-ES',
            'frequency' : 'day'
        }
    }).then(function(response) {
        console.log('qui');
        console.log(response.data);                               
        return response.data;
    }, function(response) {
        //fail case
        console.log(response);
        console.log(fallito);
        return  response;
    });
};
If I do:
this.message2 = function() {
    var = temp;
    $http({
        url : 'dataset_of_model',
        method : 'POST',
        data : {
            'experiment' : 'rcp85',
            'model' : 'HadGEM2-ES',
            'frequency' : 'day'
        }
    }).then(function(response) {
        console.log('qui');
        console.log(response.data);                                  
        temp = response.data;
    }, function(response) {
        //fail case
        console.log(response);
        console.log(fallito);
        return response;
    });
    return temp;            
}; 
The return temp doesn't have the data because it returns before data, even if I wait for example 10 seconds before return.
How can I return data in a synchronous way?
Thanks!!
 
     
     
    