发布angular6之后不清理缓存

时间:2018-08-15 22:18:13

标签: angular caching

发出发布请求后,如何禁用缓存。对于我的缓存,我使用HTTP Interceptor来修改我的请求并添加缓存。问题是当我发布新文章并重定向到我的文章列表时,仍然可以从缓存中看到以前的文章

这是我的CACHING拦截器

posix_spawn

这是我的教练服务

import { Injectable } from '@angular/core';
import {
  HttpEvent,
  HttpRequest,
  HttpResponse,
  HttpInterceptor,
  HttpHandler
} from '@angular/common/http';

import { Observable, of } from 'rxjs';
import { tap } from 'rxjs/operators';

import { RequestCache } from '../services/request-cache.service';

@Injectable({
  providedIn: 'root'
})
export class CachingInterceptor implements HttpInterceptor {
  constructor(private cache: RequestCache) {}

  intercept(req: HttpRequest<any>, next: HttpHandler) {
    const CACHED_RESPONSE = this.cache.get(req);
    return CACHED_RESPONSE
      ? of(CACHED_RESPONSE)
      : this.sendRequest(req, next, this.cache);
  }

  sendRequest(
    req: HttpRequest<any>,
    next: HttpHandler,
    cache: RequestCache
  ): Observable<HttpEvent<any>> {
    return next.handle(req).pipe(
      tap(res => {
        if (res instanceof HttpResponse && req.method === 'GET') {
          cache.put(req, res);
        }
      })
    );
  }
}

发布后我要尝试删除已保存的缓存,以便它可以呈现我的新帖子。必须发生在拦截器中,因为我什至无法到达服务来提出新的发帖请求。

0 个答案:

没有答案