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

修复app支付返回定时器内存泄漏问题

cuiyalong 5 лет назад
Родитель
Сommit
c1e89833d0
1 измененных файлов с 9 добавлено и 2 удалено
  1. 9 2
      src/views/pay/Pay.vue

+ 9 - 2
src/views/pay/Pay.vue

@@ -91,6 +91,13 @@ export default class Pay extends Vue {
 
   payWay = this.payPlatFormWayMap[this.env.platform][0].type
 
+  checkPaySuccessTimer = 0
+
+  beforeRouteLeave (to, from, next) {
+    clearInterval(this.checkPaySuccessTimer)
+    next()
+  }
+
   created () {
     const query: any = this.$route.query
     this.orderInfo.ordercode = query.ordercode
@@ -211,11 +218,11 @@ export default class Pay extends Vue {
   // 开启定时任务,3s查询一次是否支付成功
   checkAppPaySuccess () {
     const ordercode = this.orderInfo.ordercode
-    const checkPaySuccessTimer = setInterval(() => {
+    this.checkPaySuccessTimer = setInterval(() => {
       this.isPaySuccess({ ordercode }).then(res => {
         if (res.error_code === 0 && res.data.status === 1) {
           // 支付完成订单,关闭定时器
-          clearInterval(checkPaySuccessTimer)
+          clearInterval(this.checkPaySuccessTimer)
           this.$router.replace(`/pay-success/${ordercode}`)
         }
       })