memo-promise.ts 253 B

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