In this scenario the requirement is to get the data with an Http request if the data is not in a buffer. If it's in the buffer, use it from there without the Http request.
I tried the code below but it doesn't make much sense; if the data is in the buffer I don't know if I should return from the function doing nothing or return the deferred promise. Any thoughts?
  var dataBuffer = null;
  var getData = function() {
     var deferred = $q.defer();
     if (dataBuffer != null) {  // this is the part I'm not convinced
         deferred.resolve();
         return;
     }  
     $http.get('/some/url/')
       .success(function(data) { 
               dataBuffer = data;
               deferred.resolve();
       })
       .error(function(data) {
               deferred.reject();
       });
     return deferred.promise;
  };
Invoked in the following way:
     var promise = getData();
     promise.then (
           function(response) { 
              dataBuffer = .... // dataBuffer contains data
              }
           );
 
     
     
     
    