在Web Progressive应用中模拟发布请求

时间:2018-08-17 20:01:43

标签: angular6 service-worker

我必须在角度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);
    }
}

0 个答案:

没有答案