Angular JS在调用新的$ http之前取消$ http调用

时间:2013-07-01 12:31:57

标签: http angularjs angular-http

在angular JS 1.1.5中,您可以取消之前启动的$ http调用。这两个link1link2对其工作原理给出了一些解释。

但是我无法理解,如何在实践中使用它。我创建了plnkr来说明我想要实现的目标。

  1. 用户有一个他可以点击的链接(我们知道,用户往往非常热情地这样做)
  2. 如果用户点击了链接,并且之前的请求尚未完成,则应取消该请求,并且应该发出新请求(在此示例中还有其他方法可以忽略多次点击。原始问题是用户输入字段,其中包含ng-改变它 - 每次用户更改值时都会发出请求 - 每个按键都会触发$ http。我正在使用链接使其更简单一些)
  3. 正如您在plnkr请求火灾中看到的那样,并立即取消,但我期待最后一次请求成功。

    我是angularjs的新手,所以我可能做错了。我已经找到了我能想象到的一切,但是没有完整的例子来表示canceler.resolve()

    任何人都可以帮我这个或指导我正确的方向吗?

1 个答案:

答案 0 :(得分:10)

您需要为每个请求创建一个新的取消订阅者,因为一旦解决它就无法再次使用。

See here for an updated plnkr.