我是角色的新手,所以我需要详细解决这个问题。我已经看到很多答案,但不是根据我的情况。
我有服务:
function ticketService($resource, globals) {
return $resource(globals.API_URL+'/tickets/:id', {id: '@id'}, {
update: {method: 'PUT'}
});
}
现在,我需要在进行新通话时取消之前的通话。我需要在这里使用超时参数吗?
在控制器即时通讯中调用此服务:
ticketService.get({group_by: type}, function(data) {
.
.
.
.
});
我需要如何改变我的服务和控制器。
感谢。
答案 0 :(得分:3)
示例是此前的Stackoverflow问题应该适用于您的要求。 $resource
支持Angular为其承诺系统提供的timeout
功能。
How to cancel an $http request in AngularJS?
var canceller;
function ticketService($resource, globals) {
canceller = $q.defer();
return $resource(globals.API_URL + '/tickets/:id', {
timeout: canceller.promise,
id: '@id'
}, {
update: {method: 'PUT'}
});
}
function cancelRequest() {
if (canceller) {
// You could also use a $timeout timer to cancel it
canceller.resolve('cancelled');
}
}