@pengzhanbo/utils - v3.5.0
    Preparing search index...

    Function memoize

    • Memoize a function, caching its results based on arguments. Supports max cache size and TTL (time-to-live) expiration.

      记忆化函数,缓存基于参数的结果。支持最大缓存大小和 TTL 过期机制

      Type Parameters

      • T extends Fn

      Parameters

      • func: T

        The function to memoize. 要记忆化的函数

      • Optionaloptions: MemoizeOptions

        Options for memoization. 记忆化配置

        • OptionalkeyResolver?: Fn<string>

          Custom key resolver. By default, arguments are serialized via JSON. 自定义 key 生成器。默认使用 JSON 序列化参数

        • OptionalmaxSize?: number

          Maximum number of cached entries. 缓存条目最大数量

        • Optionalttl?: number

          Time-to-live in milliseconds. If set, cache expires after this duration. 缓存有效期(毫秒)。设置后缓存将在此时间后过期

      Returns MemoizedFn<T>

      A memoized version of the function. 记忆化后的函数

      const add = (a: number, b: number) => a + b
      const memoizedAdd = memoize(add)
      memoizedAdd(1, 2) // => 3, computed
      memoizedAdd(1, 2) // => 3, cached
      memoizedAdd(2, 1) // => 3, different args, computed

      With TTL (expires after 1000ms) / 缓存有效期(毫秒)。

      const fn = memoize(someExpensiveFn, { ttl: 1000 })
      fn('key') // computed
      fn('key') // cached (within TTL)

      With maxSize (LRU eviction when limit exceeded) / 最大缓存条目数量(LRU 缓存策略)

      const fn = memoize(someExpensiveFn, { maxSize: 100 })
      

      With custom key resolver / 自定义 key 生成器

      const fn = memoize(someExpensiveFn, {
      keyResolver: (a, b) => `${a}:${b}`
      })

      Clear cache / 清除缓存

      const fn = memoize(someExpensiveFn)
      fn('key') // computed
      fn('key') // cached
      fn.clear()