Surge_by_SukkaW/Build/lib/memo-promise.ts

13 lines
253 B
TypeScript

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