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

rai*_*ins 5 http angularjs angular-http

在角度JS 1.1.5中,您可以取消之前启动的$ http调用.这两个link1link2给出了它如何工作的一些解释.

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

  1. 用户有一个他可以点击的链接(我们知道,用户倾向于非常热情地这样做)
  2. 如果用户单击链接,并且之前的请求尚未完成,则应取消它,并且应该发出新请求(在此示例中,还有其他方法可以忽略多次点击.原始问题是用户输入字段,其中包含ng-change - 每次用户更改值时都会发出请求 - 每个按键都会触发$ http.我正在使用链接使其更简单一些)

您可以在plnkr请求中看到并立即取消,但我希望最后一个请求成功.

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

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

Dav*_*ett 10

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

请参阅此处获取更新的plnkr.