Angular $ http缓存尝试失败吗?

时间:2015-07-13 23:50:49

标签: angularjs caching

我对此并不确定,也没有看到有关它的文档。如果我这样打电话......

...
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并将其删除?

1 个答案:

答案 0 :(得分:1)

你不需要。当缓存启用的角度保留与缓存中的url相关的promise对象时,任何后续请求都将收到相同的promise,以便不再对服务器进行调用。但是,如果unsuccessful调用缓存will get removed作为ajax调用从服务器返回。但是,如果你在那段时间之间再打一次电话,那么所有这些电话都会失败,因为它们都有相同的承诺。