缩进是通过使用AngularJS拦截器拦截请求和响应来缓存API调用。以下是我目前的代码。如果请求存在于缓存中,我不知道该怎么做。这可行吗?这是正确的方法吗?
app.factory('apiCacheMiddleware', apiCacheMiddleware);
function apiCacheMiddleware($cacheFactory) {
var cache = $cacheFactory('apiCache');
var interceptor = {
request: function(config) {
console.log(config)
if(config.method === 'GET' && cache.get(config.url)){
// What to return from here???
}
return config;
},
response: function(response) {
console.log(response);
if(response.config.method === 'GET'){
cache.put(response.config.url, response.data);
}
return response;
}
};
return interceptor;
};
答案 0 :(得分:0)
您需要做什么(如果您仍然需要它)是将您使用$cacheFactory
创建的缓存分配给请求(config.cache = cache;
- 检查之前的值可能会有用并做出一些决定)。在响应中,您将按照自己的意愿填写该缓存,AngularJS将负责其余的工作。