取消$ http请求angularjs

时间:2014-04-07 14:36:46

标签: javascript angularjs http

尝试在搜索输入框上取消$ http请求,但先前的请求似乎没有被中止。我跟着其他堆栈溢出问题的例子。这是我的JS代码:

var canceler;
$scope.someFunction = function() {
      if(canceler)
         canceler.resolve();
      canceler = $q.defer();
      $http({method: 'GET', url:  service+url, timeout: canceler.promise}).
          success(function(data, status, headers, config) {  });
}

HTML:

<input ng-change="someFunction" />

如果我在搜索框中输入两个字符,则会调用该函数两次,但初始请求仍会通过。因此,两个请求最终都会通过,并且在响应时间内等待它是随机的,正在使用哪个响应。图书馆在某些时候发生了变化吗?我有一段时间以前的工作,但现在它不再有用了。

1 个答案:

答案 0 :(得分:0)

我认为角度js的版本可能有问题,因为他们已经删除了promise的超时选项,你现在只能以毫秒为单位给出超时但是有一个解决方法, 检查此链接 http://www.bennadel.com/blog/2624-aborting-an-ajax-request-in-angularjs-using-httpi.htm