瀏覽代碼

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

chenls 3 年之前
父節點
當前提交
0c633ff67d
共有 1 個文件被更改,包括 6 次插入1 次删除
  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);