import * as React from 'react'; export function useResolvedValue(method: () => Promise): [T | null, Error | null] { const [error, setError] = React.useState(null); const [value, setValue] = React.useState(null); React.useEffect(() => { let isMounted = true; method() .then((value) => { if (isMounted) { setValue(value); } }) .catch((error) => { if (isMounted) { setError(error); } }); return () => { isMounted = false; }; }, []); return [value, error]; }