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

48 lines
866 B
Markdown

# `useAsyncRetry`
Uses `useAsync` with an additional `retry` method to easily retry/refresh the async function;
## Usage
```jsx
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
```ts
useAsyncRetry(fn, args?: any[]);
```