我有一种情况,我在使用$ q服务的服务中有许多承诺。在地点变更方面,我想拒绝所有未兑现的承诺,以防止任何链式承诺的运行。这可能吗?
非常感谢任何想法
C
答案 0 :(得分:0)
你想要做的是,某些活动取消承诺。使用$ http,您可以通过超时承诺取消任何有效/待处理的承诺。
e.g。以下
app.factory("movies", function($http, $q){
var getById = function(id){
var canceller = $q.defer();
var cancel = function(reason){
canceller.resolve(reason);
};
var promise =
$http.get("/api/movies/slow/" + id, { timeout: canceller.promise})
.then(function(response){
return response.data;
});
return {
promise: promise,
cancel: cancel
};
};
return {
getById: getById
};
});
您可以从任何地方调用此取消功能
<button ng-click="cancel(request)">Cancel</button>
详细了解此here
答案 1 :(得分:-1)
我认为您可以使用$ q.all()方法来管理一组链式承诺。