I gone through some links:
How to cancel an $http request in AngularJS?
Cancelling ongoing Angular $http requests when there's a new request
How to cancel a $http call from controller in Angular JS?
But didn't work in my code
How can I cancel previous request? Below in my request service code.
function PostData (url, data,cancelPrevious, auth, token, headers) {
var deferred = $q.defer();
token = token || window.apiToken;
headers = headers || {};
if (cancelPrevious && $http.pendingRequests.length > 0) {
deferred.resolve('cancel');
var deferred = $q.defer();
var newPostData = data ? JSON.stringify(JSON.parse(data)) : null;
$http({
method: "POST",
url: url,
headers: headers,
data: newPostData
}).then(function (response) {
deferred.resolve(response.data);
}),
function (data) {
deferred.resolve(data);
};
return deferred.promise;
} else {
var newPostData = data ? JSON.stringify(JSON.parse(data)) : null;
$http({
method: "POST",
url: url,
headers: headers,
data: newPostData
}).then(function (response) {
deferred.resolve(response.data);
}),
function (data) {
deferred.resolve(data);
};
return deferred.promise;
}
};
Using -
Service.PostData(config.apiBaseUrl + "Monitoring/GetAllSpotLines", JSON.stringify(postData), true)
I am using 'cancelPrevious' flag to cancel request if any request pending in $http.pendingRequests array.
I have clearly checked that it is entering that condition but deferred.resolve('cancel') not working