Bläddra i källkod

useTimer debug friendly

Michael Wang 3 år sedan
förälder
incheckning
6171edaacb
1 ändrade filer med 22 tillägg och 11 borttagningar
  1. 22 11
      src/setups/useTimers.ts

+ 22 - 11
src/setups/useTimers.ts

@@ -1,4 +1,4 @@
-import { onUnmounted } from "vue";
+import { onBeforeUnmount } from "vue";
 
 /**
  * 自动添加和清除timer
@@ -6,6 +6,8 @@ import { onUnmounted } from "vue";
 export function useTimers() {
   const mixin__intervals: number[] = [];
   const mixin__timeouts: number[] = [];
+  const atTime = new Date().toLocaleTimeString();
+  const atUrl = window.location.pathname;
 
   /**
    * 会在 beforeDestory 中自动清除
@@ -20,12 +22,15 @@ export function useTimers() {
     mixin__intervals.push(i);
     logger({
       cnl: ["server", "console"],
-      pgu: "AUTO",
+      // pgu: "AUTO",
       lvl: "debug",
       act: "addInterval",
       ext: {
-        mixin__intervals,
-        mixin__timeouts,
+        atTime,
+        atUrl,
+        i,
+        mixin__intervals: mixin__intervals.toString(),
+        mixin__timeouts: mixin__timeouts.toString(),
       },
     });
 
@@ -45,27 +50,33 @@ export function useTimers() {
 
     logger({
       cnl: ["server", "console"],
-      pgu: "AUTO",
+      // pgu: "AUTO",
       lvl: "debug",
       act: "addTimeout",
       ext: {
-        mixin__intervals,
-        mixin__timeouts,
+        atTime,
+        atUrl,
+        i,
+        mixin__intervals: mixin__intervals.toString(),
+        mixin__timeouts: mixin__timeouts.toString(),
       },
     });
 
     return i;
   }
 
-  onUnmounted(() => {
+  onBeforeUnmount(() => {
+    if (mixin__intervals.length === 0 && mixin__timeouts.length === 0) return;
     logger({
       cnl: ["server", "console"],
-      pgu: "AUTO",
+      // pgu: "AUTO",
       lvl: "debug",
       act: "clearTimers",
       ext: {
-        mixin__intervals,
-        mixin__timeouts,
+        atTime,
+        atUrl,
+        mixin__intervals: mixin__intervals.toString(),
+        mixin__timeouts: mixin__timeouts.toString(),
       },
     });
     for (const i of mixin__intervals) {