diff --git a/src/usePromise.ts b/src/usePromise.ts index 1a827b2579..2725605744 100644 --- a/src/usePromise.ts +++ b/src/usePromise.ts @@ -1,21 +1,23 @@ import {useCallback} from 'react'; import useRefMounted from './useRefMounted'; -export type UsePromise = () => (promise: Promise) => Promise; +export type UsePromise = () => (promise: Promise) => Promise; const usePromise: UsePromise = () => { const refMounted = useRefMounted(); - return useCallback((promise: Promise): Promise => - new Promise((resolve, reject) => { - promise.then(value => { + return useCallback((promise: Promise) => + new Promise((resolve, reject) => { + const onValue = value => { if (refMounted.current) { resolve(value); } - }, error => { + }; + const onError = error => { if (refMounted.current) { reject(error); } - }) + }; + promise.then(onValue, onError) }), []); };