-
-
Save prayagverma/b4ac6539ae5e8993d24f to your computer and use it in GitHub Desktop.
Revisions
-
prayagverma renamed this gist
Jul 17, 2015 . 1 changed file with 0 additions and 0 deletions.There are no files selected for viewing
File renamed without changes. -
jintoppy revised this gist
Aug 20, 2014 . 1 changed file with 2 additions and 2 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -55,8 +55,8 @@ angular.module('globalmodule') config.timeout = deferred.promise; addHttpRequest({url: config.url, promiseObj: deferred}); return config; }, // On request failure -
jintoppy revised this gist
Aug 18, 2014 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -24,7 +24,7 @@ angular.module('globalmodule') function abortAllAjaxRequests(ajaxRequests){ angular.forEach(ajaxRequests, function(xhr, url){ xhr && xhr.abort(); }); } function abortAllOldRequests(){ -
jintoppy created this gist
Aug 18, 2014 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,83 @@ angular.module('globalmodule') .config(['$provide', '$httpProvider', function($provide, $httpProvider){ $provide.factory('GlobalAjaxInterceptor', ['$q', '$rootScope', function($q, $rootScope){ var currentRequests={http: {}, ajax: {}}; function addHttpRequest(conf){ currentRequests.http[conf.url] = conf.promiseObj; } function addAjaxRequest(conf){ currentRequests.ajax[conf.url] = conf.promiseObj; } function abortAllHttpRequests(httpRequests){ angular.forEach(httpRequests, function(promise, url){ promise && promise.resolve(); }); } function abortAllAjaxRequests(ajaxRequests){ angular.forEach(ajaxRequests, function(xhr, url){ xhr && xhr.abort(); }) } function abortAllOldRequests(){ var oldRequests = angular.copy(currentRequests); currentRequests = { http: {}, ajax: {} }; abortAllHttpRequests(oldRequests.http); abortAllAjaxRequests(oldRequests.ajax); } $( document ).ajaxSend(function(event, xhr, options) { addAjaxRequest({url: options.url, promiseObj: xhr}); }); $rootScope.$on('$stateChangeSuccess', function () { abortAllOldRequests(); }); return { // On request success request: function (config) { var deferred = $q.defer(); config.timeout = deferred.promise; addHttpRequest({url: config.url, promiseObj: deferred}); // Return the config or wrap it in a promise if blank. return config || $q.when(config); }, // On request failure requestError: function (rejection) { // Return the promise rejection. return $q.reject(rejection); }, // On response success response: function (response) { // Return the response or promise. return response || $q.when(response); }, // On response failture responseError: function (rejection) { // Return the promise rejection. return $q.reject(rejection); } }; }]); $httpProvider.interceptors.push('GlobalAjaxInterceptor'); }]);