Surge_by_SukkaW/Build/lib/memo-promise.ts
2024-02-06 15:49:51 +08:00

9 lines
228 B
TypeScript

export const createMemoizedPromise = <T>(fn: () => Promise<T>, preload = true): () => Promise<T> => {
let promise: Promise<T> | null = preload ? fn() : null;
return () => {
promise ??= fn();
return promise;
};
};