mirror of
https://github.com/blitzkit/blitzkit.git
synced 2026-10-23 03:29:51 +02:00
20 lines
386 B
TypeScript
20 lines
386 B
TypeScript
import { use } from "react";
|
|
|
|
const cache = new Map<string, Promise<unknown>>();
|
|
|
|
export function useAwait<Type>(
|
|
creator: () => Promise<Type>,
|
|
discriminator: string
|
|
) {
|
|
let promise;
|
|
|
|
if (cache.has(discriminator)) {
|
|
promise = cache.get(discriminator) as Promise<Type>;
|
|
} else {
|
|
promise = creator();
|
|
cache.set(discriminator, promise);
|
|
}
|
|
|
|
return use(promise);
|
|
}
|