我必须在角度6中创建一个Web Progressive应用程序,我已经创建了我的服务工作者,而且我将所有get请求都放入了缓存中。我的问题是,当我想在脱机模式下发出发布请求时,因为应用程序必须模拟发布请求,所以用户必须看到插入的最新元素,并且他们也可以编辑或删除,以及何时恢复连接。必须将所有发帖请求发送到服务器,并在发帖失败的情况下通知用户。
constructor(private router: Router) { }
intercept(req: HttpRequest<any>, next: HttpHandler) {
return this.sendRequest(req, next);
}
sendRequest(
req: HttpRequest<any>,
next: HttpHandler
): Observable<HttpEvent<any>> {
if (req.method === 'POST' && !navigator.onLine) {
localStorage.setItem(req.body.email, JSON.stringify(req));
this.router.navigateByUrl('list');
} else {
if (navigator.onLine) {
localStorage.clear();
}
return next.handle(req);
}
}