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