Просмотр исходного кода

faceid 的退出会导致部分请求的token信息被提前清空。此处应该控制请求被处理完毕,再执行退出。

Michael Wang 5 лет назад
Родитель
Сommit
c9bdc842d7
1 измененных файлов с 10 добавлено и 7 удалено
  1. 10 7
      src/features/OnlineExam/Examing/FaceId.vue

+ 10 - 7
src/features/OnlineExam/Examing/FaceId.vue

@@ -137,8 +137,8 @@ export default {
         .then(response => {
         .then(response => {
           if (response.status == 200) {
           if (response.status == 200) {
             var receivedMsg = response.data;
             var receivedMsg = response.data;
-            this.faceTestEnd(receivedMsg);
             faceTestEndCalled = true;
             faceTestEndCalled = true;
+            return this.faceTestEnd(receivedMsg);
           }
           }
         })
         })
         .finally(() => {
         .finally(() => {
@@ -153,7 +153,9 @@ export default {
           }
           }
           this.logout(
           this.logout(
             "?LogoutReason=" +
             "?LogoutReason=" +
-              (faceTestEndCalled ? "活体检测超时" : "活体检测超时-可续考")
+              (faceTestEndCalled
+                ? "活体检测超时"
+                : "活体检测超时-faceLivenessVerifyTimeOut-调用失败")
           );
           );
         });
         });
     },
     },
@@ -220,14 +222,14 @@ export default {
             duration: 30,
             duration: 30,
             closable: true,
             closable: true,
           });
           });
-          this.faceTestUploadResult("FAILED");
+          return this.faceTestUploadResult("FAILED");
         } else if (receivedMsg.verifyResult == "VERIFY_SUCCESS") {
         } else if (receivedMsg.verifyResult == "VERIFY_SUCCESS") {
           this.$Message.info({
           this.$Message.info({
             content: "人脸检测成功,请继续完成考试",
             content: "人脸检测成功,请继续完成考试",
             duration: 15,
             duration: 15,
             closable: true,
             closable: true,
           });
           });
-          this.faceTestUploadResult("SUCCESS");
+          return this.faceTestUploadResult("SUCCESS");
         }
         }
       } else if (receivedMsg.verifyCount >= 2) {
       } else if (receivedMsg.verifyCount >= 2) {
         if (receivedMsg.verifyResult == "VERIFY_SUCCESS") {
         if (receivedMsg.verifyResult == "VERIFY_SUCCESS") {
@@ -236,14 +238,14 @@ export default {
             duration: 15,
             duration: 15,
             closable: true,
             closable: true,
           });
           });
-          this.faceTestUploadResult("SUCCESS");
+          return this.faceTestUploadResult("SUCCESS");
         } else {
         } else {
           this.$Message.error({
           this.$Message.error({
             content: "人脸检测不合格,结束考试",
             content: "人脸检测不合格,结束考试",
             duration: 30,
             duration: 30,
             closable: true,
             closable: true,
           });
           });
-          this.faceTestUploadResult("FAILED");
+          return this.faceTestUploadResult("FAILED");
         }
         }
       }
       }
     },
     },
@@ -251,7 +253,7 @@ export default {
      * 人脸检测结果返回后台处理
      * 人脸检测结果返回后台处理
      */
      */
     faceTestUploadResult(result) {
     faceTestUploadResult(result) {
-      this.$http
+      return this.$http
         .get(
         .get(
           "/api/ecs_oe_student/examFaceLivenessVerify/faceLivenessVerifyEnd/" +
           "/api/ecs_oe_student/examFaceLivenessVerify/faceLivenessVerifyEnd/" +
             this.examRecordId +
             this.examRecordId +
@@ -298,6 +300,7 @@ export default {
 
 
       // 两个结束点。第一个结束点:超时。先传后台,再根据后台信息进行处理。可能ws没有收到处理结果,会通过http接收一遍。
       // 两个结束点。第一个结束点:超时。先传后台,再根据后台信息进行处理。可能ws没有收到处理结果,会通过http接收一遍。
       //定时事件,如果1分钟内未完成人脸检测,执行内部程序
       //定时事件,如果1分钟内未完成人脸检测,执行内部程序
+      clearTimeout(this.faceIdTimeout); // 防止这个函数是否会因为别的原因被调两次
       this.faceIdTimeout = setTimeout(() => {
       this.faceIdTimeout = setTimeout(() => {
         this.faceidLoadedButTimeouted();
         this.faceidLoadedButTimeouted();
       }, 60000); //60000
       }, 60000); //60000