如何在ajax
中中止待处理的AngularJS
个请求?我正在使用Service
进行ajax调用,并且如果在同一路由上创建了一个新请求,则要中止所有挂起的请求。
这是我的服务:
myService.service('angService', function($http){
this.getfromRemote=function(url){
return $http.get(location+'/dev/apiv-1-0-2/'+url);
}
});
我在这里打电话给服务。在下次运行之前,我想中止待处理的ajax请求。
angService.getfromRemote('paymentStatement/'+$scope.username)
.success(function(response){
})
答案 0 :(得分:0)
要中止待处理的$http
请求,您可以将承诺传递给$http
请求的超时属性,并调用resolve
以中止请求。
myService.service('angService',function($http, $q){
var pending = false;
var deferred = $q.defer();
this.getfromRemote=function(url){
if (pending) {
deferred.resolve();
deferred = $q.defer();
}
pending = true;
return $http({
method: 'GET',
url: location+'/dev/apiv-1-0-2/'+url,
timeout = deferred.promise;
}).then(function(result) {
pending = false;
deferred = $q.defer();
return result;
}, function(result) {
pending = false;
deferred = $q.defer();
return result;
});
}
});