From d0f850e02dd6aea783b95c2462d930d22cb60c94 Mon Sep 17 00:00:00 2001 From: fengxiang <110431245@qq.com> Date: Wed, 06 Jun 2018 15:14:46 +0800 Subject: [PATCH] 优化超时弹窗 --- src/app/core/net/default.interceptor.ts | 52 +++++++++++++++++++++++++--------------------------- 1 files changed, 25 insertions(+), 27 deletions(-) diff --git a/src/app/core/net/default.interceptor.ts b/src/app/core/net/default.interceptor.ts index e1b947f..462eed3 100644 --- a/src/app/core/net/default.interceptor.ts +++ b/src/app/core/net/default.interceptor.ts @@ -21,36 +21,34 @@ */ @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 (!this.isExpireModelShow && !!event.error) { + this.isExpireModelShow = true; + 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; + } + // ������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 +83,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