javascript - 取消 $http 请求 angularjs

标签 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" />

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

最佳答案

我认为 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/

相关文章:

javascript - 为父对象中的每个子对象(该子对象是数组)获取父对象的多个条目

javascript - 如何在 Angular 中访问动态添加的 DOM 元素?

javascript - 在自定义指令中调用服务

javascript - Angular 双向数据绑定(bind)的替代方案

javascript - 如何防止从客户端向服务器端发送数据(位置、纬度和经度)时作弊?

http - HTTP 1.1 合规性测试

Python:请求 session 登录 Cookie

javascript - 如何在网格表中使用 javascript 获取 html <td> 值

javascript - 如何从具有多个键的json对象收集数据并将所有值推送到单个键:value array

javascript - 从 Mysql 创建 JSON 响应的更智能方法