问题描述
如何使用Angular HttpInterceptor缓存一段时间的获取请求?我想在进入服务器之前从缓存中获取响应。
例如:
-
第一个请求从服务器获取数据
-
将响应缓存60秒
-
第二个请求从缓存中获取数据
-
如果第三个请求在60秒后从服务器获取数据,否则从缓存中获取数据
@Injectable() export class JwtInterceptor implements HttpInterceptor { userDetails: any; constructor(public router: Router) { } intercept( request: HttpRequest<any>,next: HttpHandler ): Observable<HttpEvent<any>> { if (!request.url.includes('auth/login') && this.userDetails) { // TODO: If no internet connectivity logout from the session // For multi tenancy tenant ID is in auth token so no need to pass extra param just pass auth token request = request.clone({ setHeaders: { 'x-access-token': CommonUtils.getCookie('token') } }); } return next.handle(request).pipe( map((event: HttpEvent<any>) => { return event; }),catchError((error: HttpErrorResponse) => { let data = {}; data = { reason: error ? error : '',status: error.status }; return throwError(error); }) ); } }
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)