Is there a way to emulate jquery 'complete' callback with angular $http module? I have some code I would like to execute no matter whether the request succeeded or failed and at the moment I find myself having to write this:
$http.get(someUrl).success(function(){
successCode();
completeCode();
}).error(function(){
errorCode();
completeCode();
})
but I would rather write something like:
$http.get(someUrl).success(function(){
successCode();
}).error(function(){
errorCode();
}).complete(function(){
completeCode();
})
I've tried also using the promise API but I end up having the same problem. Any suggestion?
Update Aug 2014: .always
has been renamed .finally
in recent versions of Angular. Prefer .finally
to .always
.
Note that in order to support IE8 you have to call it with bracket notation as ["finally"]
.
You can use .always
in AngularJS
This change is rather new (you could do that in jQuery for a while), you can see the commit here. This requires you to have AngularJS 1.1.5 or higher.
always(callback)
– allows you to observe either the fulfillment or rejection of a promise, but to do so without modifying the final value. This is useful to release resources or do some clean-up that needs to be done whether the promise was rejected or resolved. See the full specification for more information.