I'm learning Angular and I've come across two approaches to make calls that return promises. I'd like to know if one approach is better than the other and/or when you would use each.
First Technique:
function getSomeDataFromServer() {
var deferred = $q.defer();
if (myData) {
// call to backend was previously made and myData is already loaded
deferred.resolve(myData);
} else {
// get data from server
$http.get(my_url_endpoint).then(function(response) {
// cacheResult() will set myData = response.data
deferred.resolve(cacheResult(response));
});
}
return deferred.promise;
}
Second Technique:
function getSomeDataFromServer() {
if (myData) {
// call to backend was previously made and myData is already loaded
return $q.when(myData);
} else {
// get data from server
return $http.get(my_url_endpoint).then(function(response) {
// cacheResult() will set myData = response.data
return cacheResult(response);
});
}
}