From 87b5c6927ee0f377d9fc0bcc0f9d1ea6b969ffe6 Mon Sep 17 00:00:00 2001 From: fengxiang <110431245@qq.com> Date: Wed, 06 Jun 2018 15:12:59 +0800 Subject: [PATCH] 解决超时弹窗反复弹出 --- src/app/core/net/default.interceptor.ts | 54 +++++++++++++++++++++++++++--------------------------- 1 files changed, 27 insertions(+), 27 deletions(-) diff --git a/src/app/core/net/default.interceptor.ts b/src/app/core/net/default.interceptor.ts index e1b947f..6f77ed7 100644 --- a/src/app/core/net/default.interceptor.ts +++ b/src/app/core/net/default.interceptor.ts @@ -21,36 +21,36 @@ */ @Injectable() export class DefaultInterceptor implements HttpInterceptor { - // private unLoginHandle: Subject<HttpErrorResponse> = new Subject<HttpErrorResponse>(); + private unLoginHandle: Subject<HttpErrorResponse> = new Subject<HttpErrorResponse>(); constructor(private injector: Injector) { + this.unLoginHandle.debounceTime(1000).subscribe( (event: HttpErrorResponse) => { + if (!!event.error) { + let errorMsg = ''; + const erroCode = !!event.error['errorCode'] ? Number.parseInt(event.error['errorCode']) : 0; + switch (erroCode) { + case 10: errorMsg = '���������,���������'; break; + case 11: errorMsg = '������������,���������������'; break; + case 12: errorMsg = '������������,������������������'; break; + case 0: errorMsg = '���������������������������'; break; + default: errorMsg = '������������,���������������'; break; + } + if (!this.isExpireModelShow) { + this.isExpireModelShow = true; + // ������refresh��������������������� + this.loginService.clearRefreshToken(); + this.model.info({ + title: errorMsg, + onOk: () => { + this.isExpireModelShow = false; + this.goTo('/passport/login'); + } + }); + } + } + }); } private isExpireModelShow = false; - private unLoginHandle(event: HttpErrorResponse) { - if (!!event.error) { - let errorMsg = ''; - const erroCode = !!event.error['errorCode'] ? Number.parseInt(event.error['errorCode']) : 0; - switch (erroCode) { - case 10: errorMsg = '���������,���������'; break; - case 11: errorMsg = '������������,���������������'; break; - case 12: errorMsg = '������������,������������������'; break; - case 0: errorMsg = '���������������������������'; break; - default: errorMsg = '������������,���������������'; break; - } - if (!this.isExpireModelShow) { - this.isExpireModelShow = true; - // ������refresh��������������������� - this.loginService.clearRefreshToken(); - this.model.info({ - title: errorMsg, - onOk: () => { - this.isExpireModelShow = false; - this.goTo('/passport/login'); - } - }); - } - } - } get loginService(): LoginService { return this.injector.get<LoginService>(LoginService); } @@ -85,7 +85,7 @@ case 401: // ������������������ // this.goTo('/passport/login'); if (!this.isLoginPage) { - this.unLoginHandle(<HttpErrorResponse>event); + this.unLoginHandle.next(<HttpErrorResponse>event); } break; case 403: -- Gitblit v1.8.0