Sfoglia il codice sorgente

fix: Set cache overflow of the setTimeout Maximum delay value (#1742)

chenls 3 anni fa
parent
commit
0c633ff67d
1 ha cambiato i file con 6 aggiunte e 1 eliminazioni
  1. 6 1
      src/utils/cache/memory.ts

+ 6 - 1
src/utils/cache/memory.ts

@@ -58,7 +58,12 @@ export class Memory<T = any, V = any> {
       return value;
     }
     const now = new Date().getTime();
-    item.time = now + expires;
+    /**
+     * Prevent overflow of the setTimeout Maximum delay value
+     * Maximum delay value 2,147,483,647 ms
+     * https://developer.mozilla.org/en-US/docs/Web/API/setTimeout#maximum_delay_value
+     */
+    item.time = expires > now ? expires : now + expires;
     item.timeoutId = setTimeout(
       () => {
         this.remove(key);