Skip to content

Instantly share code, notes, and snippets.

@pigoz
Forked from BrianGenisio/gist:6299303
Last active August 29, 2015 14:16
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pigoz/1f334fa8aa8a157be723 to your computer and use it in GitHub Desktop.
Save pigoz/1f334fa8aa8a157be723 to your computer and use it in GitHub Desktop.
angular.module('httpProgress')
.factory('httpProgressInterceptor', function($q) {
var requestCount = 0;
function updateProgress(update) {
var previous = requestCount;
requestCount += update;
if(previous <= 0 && requestCount > 0) {
NProgress.start();
} else if (previous > 0 && requestCount <= 0) {
NProgress.done(true);
} else {
NProgress.inc();
}
}
function incrementRequests() {
updateProgress(1);
}
function decrementRequests() {
updateProgress(-1);
}
return {
request: function (request) {
incrementRequests();
return request;
},
response: function (response) {
decrementRequests();
return response;
},
responseError: function (rejection) {
decrementRequests();
return $q.reject(rejection);
}
};
})
.config(function ($httpProvider) {
$httpProvider.interceptors.push('httpProgressInterceptor');
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment