发出发布请求后,如何禁用缓存。对于我的缓存,我使用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);
}
})
);
}
}
发布后我要尝试删除已保存的缓存,以便它可以呈现我的新帖子。必须发生在拦截器中,因为我什至无法到达服务来提出新的发帖请求。