memo-promise.ts 228 B

12345678
  1. export const createMemoizedPromise = <T>(fn: () => Promise<T>, preload = true): () => Promise<T> => {
  2. let promise: Promise<T> | null = preload ? fn() : null;
  3. return () => {
  4. promise ??= fn();
  5. return promise;
  6. };
  7. };