5

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

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

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

正如您在plnkr请求中看到的那样,请求会立即触发并被取消,但我希望最后一个请求会成功。

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

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

4

1 回答 1

10

您需要为每个请求创建一个新的取消器,因为一旦它被解决,它就不能再次使用。

有关更新的 plnkr,请参见此处。

于 2013-07-11T16:23:23.473 回答