我对此并不确定,也没有看到有关它的文档。如果我这样打电话......
...
return $http.get(baseUrl + '/lists/' + listObj.id, {cache: true})
.then(function(resp){
...
return null;
}, function fail(err){
return $q.reject(err);
});
Angular将缓存http响应,并在下次调用相同的http请求时使用该值。但是,假设连接失败或列表对象id已创建,因此url现在可以正常工作。它会缓存失败的尝试吗?
如果确实如此,我必须手动挖掘$ http.defaults.cache并将其删除?
答案 0 :(得分:1)
你不需要。当缓存启用的角度保留与缓存中的url相关的promise对象时,任何后续请求都将收到相同的promise,以便不再对服务器进行调用。但是,如果unsuccessful调用缓存will get removed作为ajax调用从服务器返回。但是,如果你在那段时间之间再打一次电话,那么所有这些电话都会失败,因为它们都有相同的承诺。