Skip to content

memoize 缓存函数

简介

memoize 是一个高阶函数,它接受一个函数 和一个可选的参数 max(默认值为 100),返回一个新的函数。该新函数会缓存函数的调用结果,并在相同的输入再次出现时直接从缓存中返回结果,而不是重新计算。这可以显著提高计算密集型函数的性能,尤其是在相同输入重复调用的情况下。

参数

  • fn: Function - 要进行记忆化的函数。
  • max?: number - 缓存的最大容量,默认值为 100。当缓存大小超过此限制时,将删除最旧的条目。

返回值

返回一个具有记忆化功能的新函数。该函数接受与原函数相同的参数,并返回相同的结果。

使用示例

typescript
import { memoize } from 'cat-tool'

function async expensiveCalculation(x: number, y: number): number {
  // 假设此处是一个耗时的任务
  return await Promise.resolve(x * x + y * y);
}

const memoizedExpensiveCalculation = Memoize(expensiveCalculation);

console.log(await memoizedExpensiveCalculation(2, 3)); // 计算并缓存结果
console.log(await memoizedExpensiveCalculation(2, 3)); // 直接从缓存中获取结果

基于 MIT 许可发布