diff --git a/src/promise/memoize.ts b/src/promise/memoize.ts index f8e48ee..0f452a8 100644 --- a/src/promise/memoize.ts +++ b/src/promise/memoize.ts @@ -24,10 +24,17 @@ function memoize( const returnFn = (async (...args: Parameters): Promise> => { const key = harsher(...args); - if (memos.has(key)) { - if (!timeoutMs || Date.now() < memos.get(key)!.expiration) { - return memos.get(key)!.value; - } + + if (timeoutMs) { + memos.forEach((item, k) => { + if (item.expiration > Date.now()) { + memos.delete(k); + } + }); + } + + if (!timeoutMs || memos.has(key)) { + return memos.get(key)!.value; } if (queues.has(key)) {