我有一个类似于以下的服务方法:
this.myServiceFunction = function(){
var deferred = $q.defer();
$http({
method: 'GET',
url: 'domain/myendpoint'
})
.success(function(data){
deferred.resolve(data);
})
.error(function(data){
deferred.reject(data);
});
return deferred.promise;
};
我会根据以下方式在我的控制器中使用这种方法:
我在控制器中使用以下方法:
$scope.myControllerFunction = function(){
myService.myServiceFunction().then(function(){
// Do things when promise resolves
});
};
我希望在另一个命令函数中取消上面的HTTP调用。我发现这个答案允许您通过在从
$q.defer()
返回的对象上调用resolve()
方法来取消HTTP请求。但是在我的代码库中,该对象在我的控制器中不可用。在上面的示例中,
myService.myServiceFunction()
返回从$q.defer()
返回的promise
对象。如何在我的限制条件下取消HTTP请求?