react-use/docs/useAsyncRetry.md
lvl99 8b7d5ed3ac reverted useAsync and created new hook useAsyncRetry which leverages useAsync
added story and docs for useAsyncRetry
fixed up new code formatting to match project
2019-03-20 15:12:45 +01:00

866 B

useAsyncRetry

Uses useAsync with an additional retry method to easily retry/refresh the async function;

Usage

import {useAsyncRetry} from 'react-use';

// Returns a Promise that resolves after one second.
const fn = () => new Promise((resolve, reject) => {
  setTimeout(() => {
    if (Math.random() > 0.5) {
      reject(new Error('Random error!'));
    } else {
      resolve('RESOLVED');
    }
  }, 1000);
});

const Demo = () => {
  const state = useAsync(fn);

  return (
    <div>
      {state.loading?
        <div>Loading...</div>
        : state.error?
        <div>Error...</div>
        : <div>Value: {state.value}</div>
      }
      {!state.loading?
        <a href='javascript:void 0' onClick={() => state.retry()}>Retry</a>
        : null
      }
    </div>
  );
};

Reference

useAsyncRetry(fn, args?: any[]);