尝试取消搜索输入框中的 $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 http://www.bennadel.com/blog/2624-aborting-an-ajax-request-in-angularjs-using-httpi.htm
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)