尝试在搜索输入框上取消$ 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" />
如果我在搜索框中输入两个字符,则会调用该函数两次,但初始请求仍会通过。因此,两个请求最终都会通过,并且在响应时间内等待它是随机的,正在使用哪个响应。图书馆在某些时候发生了变化吗?我有一段时间以前的工作,但现在它不再有用了。
答案 0 :(得分:0)
我认为角度js的版本可能有问题,因为他们已经删除了promise的超时选项,你现在只能以毫秒为单位给出超时但是有一个解决方法, 检查此链接 http://www.bennadel.com/blog/2624-aborting-an-ajax-request-in-angularjs-using-httpi.htm