尝试取消搜索输入框上的 $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" />
如果我在搜索框中输入两个字符,该函数将被调用两次,但初始请求仍会通过。因此,这两个请求最终都会通过并在响应时间挂起,使用哪个响应是随机的。图书馆在某个时候发生了变化吗?我之前有这个工作,但现在它不再工作了。
最佳答案
我认为 angular js 的版本可能有问题,因为他们已经删除了 promise 的超时选项,你现在只能以毫秒为单位给出超时,但有一个解决方法, 检查此链接 http://www.bennadel.com/blog/2624-aborting-an-ajax-request-in-angularjs-using-httpi.htm
关于javascript - 取消 $http 请求 angularjs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22915513/