I'm trying to abort the previous request if the user makes a new request. I wrote the code below, but requests are still running in parallel. Does anyone know what I'm doing wrong?
Controller
AppControllers.controller('HomeController',
['$scope', 'Services', '$q', function($scope, Services, $q) {
var canceler = $q.defer();
$scope.model = {};
$scope.find = function(id) {
canceler.resolve();
canceler = $q.defer();
Services.find(id, canceler).get().$promise.then(function(result) {
$scope.model = result;
});
};
}]);
Services
AppServices.factory("Services", ['$resource', function($resource) {
var factory = {};
var serviceBase = 'https://localhost/';
factory.find = function(id, canceler) {
return $resource(serviceBase + 'api/find/:Id', {Id: id}, {
get: {
method: 'GET',
isArray: false,
timeout: canceler.promise
}
});
};
return factory;
}]);