1import * as React from 'react'; 2 3export function useResolvedValue<T>(method: () => Promise<T>): [T | null, Error | null] { 4 const [error, setError] = React.useState<Error | null>(null); 5 const [value, setValue] = React.useState<T | null>(null); 6 7 React.useEffect(() => { 8 let isMounted = true; 9 10 method() 11 .then((value) => { 12 if (isMounted) { 13 setValue(value); 14 } 15 }) 16 .catch((error) => { 17 if (isMounted) { 18 setError(error); 19 } 20 }); 21 return () => { 22 isMounted = false; 23 }; 24 }, []); 25 26 return [value, error]; 27} 28