跳到主要内容

Memoized Function

记忆化缓存一元函数的入参到结果的映射,在重复以相同参数调用时直接返回缓存,适合纯函数且计算较贵的场景。

项目中的实现

  • 源码: src/memoizedFunction.ts
  • 导出: memoizeUnaryclearMemoizedCache(对给定 fn 返回新的记忆化包装,并非清空原函数已有缓存)

各函数示例

memoizeUnary

import { memoizeUnary } from 'wssf-kage-js';

const slowParse = memoizeUnary((raw: string) => JSON.parse(raw) as Record<string, unknown>);
slowParse('{"a":1}');
slowParse('{"a":1}'); // 第二次走缓存

clearMemoizedCache

import { memoizeUnary, clearMemoizedCache } from 'wssf-kage-js';

const f = memoizeUnary((x: number) => x * 2);
f(2);
const g = clearMemoizedCache(f); // 新的 memoize 包装,独立缓存
g(2);

什么时候优先用

  • 纯函数、参数可序列化为稳定键
  • 注意内存:长期运行的服务要对缓存大小有策略(本实现为简单 Map,生产可换 LRU)