0

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;

}]);

0 Answers0