Angular6 在Web渐进式应用程序中模拟Post请求

Angular6 在Web渐进式应用程序中模拟Post请求,angular6,service-worker,Angular6,Service Worker,我必须在angular 6中创建一个Web Progressive应用程序,我已经创建了我的服务人员,并且我将所有get请求都放在缓存中。我的问题是,当我想在脱机模式下发出post请求时,因为应用程序必须模拟post请求,因此用户必须看到插入的最新元素,并且他们可以编辑或删除,当连接恢复时,我必须将所有post请求发送到服务器,并在一个post失败时通知用户 constructor(private router: Router) { } intercept(req: HttpRequest&l

我必须在angular 6中创建一个Web Progressive应用程序,我已经创建了我的服务人员,并且我将所有get请求都放在缓存中。我的问题是,当我想在脱机模式下发出post请求时,因为应用程序必须模拟post请求,因此用户必须看到插入的最新元素,并且他们可以编辑或删除,当连接恢复时,我必须将所有post请求发送到服务器,并在一个post失败时通知用户

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);
    }
}
构造函数(专用路由器:路由器){}
拦截(请求:HttpRequest,下一步:HttpHandler){
返回此.sendRequest(请求,下一步);
}
发送请求(
请求:HttpRequest,
下一步:HttpHandler
):可见{
if(req.method==='POST'&&&!navigator.onLine){
setItem(req.body.email、JSON.stringify(req));
this.router.navigateByUrl('list');
}否则{
if(navigator.onLine){
localStorage.clear();
}
返回next.handle(req);
}
}

您应该提供一个简单的代码示例。我正在使用HttpInterceptor获取post请求并将其保存在localStorage中,但我不知道如何使用新数据更新服务人员,知道吗?