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/

相关文章:

angularjs - 通过环回中的 id 更新引导脚本中的模型值?

javascript - 使用 ng-repeat 显示表数据时如何放置条件换行?

javascript - 将输入值作为参数发布到 Angular 中的 Web 服务 API

validation - 在 go 中验证 http 请求的惯用方法

javascript - Disqus 评论计数不起作用

javascript - 如何在 GitHub 和 npm 上用 Javascript/Typescript 创建我的第一个库

JavaScript/jQuery 语法错误?

asp.net - ASP.NET HTTP 请求是否转换为 1 个线程?

android - 如何在 Kotlin (Android) 中向简单服务器发出 HTTP/POST 请求?

javascript - 文本堆叠在自身之上